考虑以下做法:
main
分支并在功能分支中根据需要创建尽可能多的提交main
分支(例如,想想 GitHub 的“压缩和合并”按钮)现在这是一个让我感兴趣的用例:
feature1
分支上工作feature2
分支的最后一次提交开始创建一个 feature1
分支(参见下图中的 C
提交)feature1
到main
(见提交G
)G
合并到feature2
分支feature2
分支上工作换句话说,在第 4 步中将
G
合并到 feature2
分支看起来像这样:
user@host:~/repo (main)$ git checkout feature2
user@host:~/repo (feature2)$ git merge main # merge G into feature2
通常,此合并(请参阅提交
H
)会导致许多合并冲突。
如何彻底消除这些冲突?
我能想到的最简单的解决方案如下(见下图):
user@host:~/repo (main)$ git checkout feature1
user@host:~/repo (feature1)$ git merge main # merge G into feature1; essentially, an empty commit
user@host:~/repo (feature1)$ git checkout feature2
user@host:~/repo (feature2)$ git merge feature1 # merge G' into feature2
换句话说,不是直接将
G
合并到feature2
,而是先将G
合并到feature1
,然后再将feature1
合并到feature2
。
有更简单的方法吗?