1

感觉我应该刷新一下我对 git 的了解。比如说,我有提交 A1 A2 .. AM .. AN 的分支,其中 AM 离 AN 很远(在 AM 之后,实际上有很多、数百个实际上是其他提交,包括合并)。

一些分支 B 已经从 AM 签出,所以这个分支看起来像 AM B1 B2 B3 B4 ...

现在我想将 B 合并回 A,并且正如预期的那样,得到很多不同的冲突。出乎意料的是,几乎所有这些冲突都与我在分支 B 中根本没有接触过的文件有关。

我只能假设所有这些冲突都是由于 AM 是一个相当古老的分支。我的问题是:将 B 合并到 A 的最佳方法是什么?我能想到的最佳策略是创建一个分支 A1 A2 .... AM B1 B2 .... AN 并尝试将其合并回 A1 ... AN。我怎样才能做到这一点?我应该尝试吗?可能在我对 git 合并如何完成的理解中,我缺少一些基本的东西?

4

1 回答 1

2

确实,您需要识别和理解这些冲突。这不是流程问题,您的树中有问题。如果,正如您断言的那样,“AM”是两个分支上 HEAD 的祖先,并且提交“AM..AN”不会触及在“B1..B4”中修改的文件,那么您不应该在这些文件上遇到冲突,期间. 您的事实意味着您对树的状态有误,可能是因为那里有修改文件的合并提交,或者因为进行了变基使得“AM”(实际提交,而不仅仅是另一个使用相同的消息提交)实际上并不是两个分支的共享祖先。

于 2013-02-05T16:41:30.943 回答