为什么当彼此相邻的行发生变化时,git会产生合并冲突?

时间:2015-03-26 11:08:09

标签: git merge

我们假设我在master中有一个包含此内容的文件:

Line 1
Line 2
Line 3
Line 4

现在说我创建并签出一个名为test的新分支。在这个分支中,我将文件更改为:

Line 1
Line 2
Line 3 Modified
Line 4

我提交了这个并切换回master。在master中我将文件更改为:

Line 1
Line 2
Line 3
Line 4 Modified

我承诺。现在,如果我将分支test合并到master,我就会发生冲突。

为什么不能使用共同的祖先来自动解决这个问题?如果我告诉git使用BeyondCompare编辑冲突作为difftool,BeyondCompare甚至不会告诉用户自动解决这个问题,因为这不是一个真正的冲突。有没有办法让git自动解决这些问题?我已经尝试了recursiveresolve合并策略,但都没有。

这是我们公司的一个问题,因为有些文件中有多个开发人员在近距离内更换线路,这会导致许多不必要的冲突。

2 个答案:

答案 0 :(得分:0)

我偶然发现同样的问题,来自SVN,我发现这也很奇怪。

我对原因没有答案,但也许这会有所帮助:

我使用另一个合并工具(取决于您正在使用的操作系统),我使用meld diff来解决合并冲突(我在linux / ubuntu上工作)。

你也可以设置git来使用这个外部合并应用程序......

请参阅http://meldmerge.org/

和google for'使用meld作为git'

e.g。 http://meldmerge.org/help/resolving-conflicts.html

答案 1 :(得分:0)

您可以在回购中的.gitattributes文件中指定不会发生冲突的自定义合并驱动程序。