感觉我应该刷新一下我对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合并是如何完成的理解我遗漏了一些基本的东西?
答案 0 :(得分:2)
真的,您需要识别并理解这些冲突。这不是一个过程问题,你的树中有问题。如果断言,“AM”是两个分支上的HEAD的祖先,并且提交“AM..AN”不接触“B1..B4”中修改的文件,那么你不应该对这些文件产生冲突,期间。事实上,你暗示你错了你的树的状态,可能是因为那里有合并提交修改了文件,或者因为一个rebase被做了“AM”(实际的提交,而不仅仅是另一个)提交相同的消息)实际上并不是两个分支的共享祖先。