对于几乎所有仅在一个分支中更改的文件,Git自动合并失败(给出冲突)

时间:2013-05-07 20:43:21

标签: git

最近我遇到了Git自动合并的奇怪问题。 我(和我的同事之一)在主题分支上提交但是当我尝试将它与我们的主Git合并时,Git无法自动合并几乎所有在master分支中更改的文件并迫使我手动解决冲突。使用mergetool执行此操作时,文件中不会显示冲突,主题分支上的文件与“base”文件相同。因此,解析速度很快,但对于更大数量的文件仍然很烦人。今天我经历了一种类似的合并(超过10个文件被标记为'冲突'),现在再次拥有一个更加冲突的文件。 我也尝试将master与我们的主题分支合并,但结果是一样的。

Eclipse实际上显示了对临时分支中冲突文件的提交,但是当将该提交中的文件与此提交父进行比较时,此文件中没有进行任何更改。显示更改的提交是由我的同事进行的合并提交(但未显示在冲突文件或任何内容的列表中)。说实话,我怀疑我的同事甚至会打开这些文件,因为他们与他正在做的事情无关(这就是他所说的)。

这种行为可能是什么原因以及如何制止这种行为?我唯一能想到的是一些编码问题,这些问题没有在mergetool或Eclipse diff中显示,但对Git来说很重要。

编辑:我已经在我们的分支中的合并提交和它的父提交之间检查了差异,实际上问题是由于端点(git diff显示的比Eclipse比较多)。合并提交将CRLF替换为LF。这实际上应该发生的事情(我们在git config中将core.autocrlf设置为true)但是其他一个雇员提交了CRLF终结点(他在他的存储库中将core.autocrlf设置为false,他不知道为什么就这样设定了。)

1 个答案:

答案 0 :(得分:1)

我不知道为什么。

但我有一个案例曾经与UTF不同,git会将它们显示为不同但在我检查文件大小之前没有明显的差异。

UTF-16文件至少如果内容相同,则大于UTF-8文件。

因此,您的同事编辑器正在将文件保存为另一个标准

干杯   Rasmus VOss