合并冲突,当分支机构不修改同一条线时

时间:2015-06-16 14:38:39

标签: git merge-conflict-resolution git-merge-conflict

我试图围绕git冲突,为什么合并这两者会导致冲突呢?

分支master上的

file.txt:

This is line number one
分支feature上的

file.txt:

This is line number one
This is line number two

1 个答案:

答案 0 :(得分:8)

通常,这不会导致冲突(假设基础文件中没有第二行)。但在这种情况下,您分别将 file.txt添加到masterfeature(这就是文件不在共同祖先中的原因)。当一个文件被独立地添加到两个分支然后被合并并且它们以任何方式不同时,Git认为它是冲突的。

原因是Git需要一个基本副本来确定合并后文件的状态。例如,让我们说一个基本文件,它只有一行。在这种情况下,Git会知道在feature中添加了一行,因此最终文件将包含两行。但是,如果基本文件有两行,Git会知道在master中删除了一行,因此最终文件只有一行。在你的情况下,没有基本文件,所以Git不知道文件的哪个版本应该" win"。