当将一个分支合并到另一个分支时,Git合并变得疯狂

时间:2014-07-16 18:56:15

标签: git merge branching-and-merging

我有一个主分支,我们用于第三方供应商的基线,另一个分支用于我们机构的自定义修改。我们已经使用了一段时间了,两者都有很多提交。通常在更新基线的时候,事情进展顺利,只有40,000个Pro * C文件中的一两个冲突,并且它们很小并且很容易手动解决。

上周提供了最新的基线,我已经开始尝试了。我将它提交到master分支中,当我对自定义分支进行合并时,它表示存在冲突。当我打开文件并进行搜索时,Sublime告诉我“<<<<<<<<<< HEAD”有990个匹配。

新基线的变化应该很少,而且大多数都应该是次要的,并且很容易在算法上解决。在文件的最顶部,我得到了这个:

<<<<<<< HEAD
#define TM_ON_STARTUP tmInitGlobS_szrtrtc
=======
#define TM_ON_STARTUP tmInitGlobS_szrtrtc
>>>>>>> master

Sublime也显示空白,它们看起来完全相同。很多都是这样的。然而,一些(很难说,可能是其中的三分之一)确实有微小的空白变化:

<<<<<<< HEAD
/*    Solution: Heading is changed to 'Current Program'.                    */
=======
/*    Solution: Heading is changed to 'Current Program'.                    */  
>>>>>>> master

在这个版本中,master在评论的末尾有一个标签。所以我可以看到它发现了一个区别,但我仍然无法理解为什么它不能简单地应用这个改变(我不在乎是否有一个选项卡)。

为什么这样做?起初,我以为可能在最近的提交中引入的两个分支之间可能存在行尾不匹配。情况似乎并非如此。

无论我使用Sourcetree,还是切换回msysgit并使用它(相同数量的冲突困境),都会发生这种情况。

任何人都可以提供任何见解,我可能已经搞砸了它开始做这件事吗?调试行为时应该检查什么?我应该手动操作并手动解决这些问题(并非所有都是单线冲突)?

1 个答案:

答案 0 :(得分:1)

您可以忽略与git merge master --strategy=recursive -Xignore-all-space

的空白差异