我们在项目中有两个目录:backend & frontend。我们正在处理相同的功能分支,让我们称其为feature-branch,FE和BE。
FE仅向frontend目录添加更改,仅向backend目录添加更改。
现在,我想将master合并到feature-branch。然而,在BE和FE中都存在冲突。我是工程师,所以我不知道如何解决FE冲突。有没有一种方法可以只合并BE目录中的更改,推送这些更改,然后要求FE工程师合并FE更改?
附注:feature-branch是我们的主要功能分支。我们从该分支创建子分支,并将PR指向该feature-branch。我们不会直接推送到那个分支。
发布于 2019-09-12 00:34:20
如果您想要在各个部分中进行合并,请进行部分合并,然后合并这些合并。你想让你的历史记录看起来如何取决于你自己,对于合并,Git唯一关心的语句是"this is a merge of these“。
要做到这一点,最令人痛苦的正确方法可能是两个部分合并都独立完成,
一次部分合并,而不是功能分支,只有后端:
git checkout feature^0 # checkout the feature commit bare, this is a wip
git merge --no-commit master # merge master, with manual changes
resolve all the backend conflicts, then
git checkout @ -- frontend # restore untouched frontend directory
git commit -m "backend-only merge of branch 'master'"
git tag WIP/backend-master-merge然后只使用前端:
git checkout feature^0 # checkout the feature commit bare, this is a wip
git merge --no-commit master # merge master, with manual changes
resolve all the frontend conflicts, then
git checkout @ -- backend # restore untouched backend directory
git commit -m "frontend-only merge of branch 'master'"
git tag WIP/frontend-master-merge现在合并结果:
git checkout feature
git merge WIP/{frontend,backend}-master-merge这样特性分支上就不会出现任何不能通过集成测试的东西。通过直接在feature分支上执行一个部分合并,然后再合并另一个部分结果,您可以获得更简单的命令序列和更简单的历史记录。
发布于 2019-09-12 00:00:43
执行合并,然后签出所需的目录
git merge --no-commit FE
git checkout HEAD PATH_TO_FRONT_END
git add FILES
git commit -m "Just BE changes!"https://stackoverflow.com/questions/57892563
复制相似问题