是否可以在步骤 4 进行合并而不会发生冲突?
-
从分支 1 到分支 2 的挑选提交"E">
branch1 : A - B - C - D - E branch2 : F - G - E(cherry-pick from 1)
-
提交将添加到分支 2
branch1 : A - B - C - D - E branch2 : F - G - E - H - I
-
以交互方式变基并压缩提交,因为它们是同一问题的解决方案。
(现在,我认为这是一个错误的决定...
branch1 : A - B - C - D - E branch2 : F - G - I'
-
樱桃采摘压扁再次提交到分支1...
(将提交 H,I 挑到分支 1 会更好吗?
branch1 : A - B - C - D - E - I'(conflict?) branch2 : F - G - I'
这是一个有趣的问题,但除非您提供实际的 git 存储库以便检查变更集,否则没有人能够提供明确的答案。
存在合并冲突的事实与提交 H 和 I 是单独挑选还是一起变基无关。E被压扁的事实可能也是一个因素。
然而,更重要的是,这个问题的前提存在一个小问题。"有没有可能不冲突地合并?"为什么这种合并需要在没有冲突的情况下发生?发生冲突可能是正确和适当的。
当 git 说"有冲突"时,这并不意味着"你搞砸了,这些不能合并"。相反,它的意思是"我(git(无法弄清楚这些更改应该如何合并。我需要人类的帮助。
这是解决方案: 获取一些好的diff/merge软件(我在Windows上使用P4Merge,但有很多选择(。检查每个有问题的提交的内容。了解冲突是什么(很可能 H 或我更改了在 E 中更改的行,或者 H 和我依赖于已经在 F 或 G 中进行的更改(。解决每个冲突:这可能意味着保留原始行,或保留较新的行,或以包含两个分支的更改的新方式修改行 - 它完全依赖于上下文。
不要害怕与团队成员协商解决冲突 - 您可能会决定他们的一些工作是否会被删除。