【发布时间】:2021-02-18 22:11:25
【问题描述】:
我使用 git 已经有一段时间了,但我的合并一直很简单。创建一个分支,将其合并到 master。有时 2 个人的分支会涉及相同的代码,因此会出现合并冲突,通常很容易修复。
但现在我有一个案例,其中创建了一个分支并进行了许多重大更改。同时对master进行了很多更改,并且两者都更改了相同的文件。我们希望合并两个分支的所有更改。我们完全预计会有冲突,但我们希望将它们保持在最低限度。
我的问题是,将 master 合并到分支、解决冲突、然后将其合并到 master 与将分支合并到 master 并解决那里的冲突之间有什么区别吗?
是否有任何提示或最佳实践可以进行这样的复杂合并以避免丢失任何更改?
【问题讨论】:
-
不是真的.... 对 git 来说是一回事。如果你以任何一种方式合并,冲突将是相同的,不同之处在于在冲突块中,来自 2 个分支的 2 个部分的顺序是倒置的(注意我没有说任何关于共同祖先的事情......那是故意,如果您使用 diff3 作为合并冲突样式...如果您使用它,该部分将保留在中间)。您应该留在基础分支并合并功能分支,这样当您执行
git checkout main~2之类的操作时,它不会进入功能分支,而是遵循主分支修订。 -
查看
git imerge了解缓慢而谨慎的方法。您的两个备选方案将使用不同的“我们的”和“他们的”标签显示相同的冲突。 -
谢谢 - imerge 看起来很有用。