git union merge带回一些删除的行

时间:2012-10-18 05:01:35

标签: git git-merge

我试图通过git union merge来理解一个令人费解的行为。要重新启动,请从具有以下内容的hello.txt开始:

1
2
3

在另一次提交中,添加一行,例如

1
2
new
3

在原始提交的不同foo分支中,删除中间行:

1
3

这里我希望合并不包含已删除的行,即使使用union merge也是如此。但是我看到它包含(在主人身上运行git merge foo之后)。

1
2
new
3

所以它忽略了我的行删除。我只是误解了工会合并是如何运作的?此处的示例回购:https://github.com/davidebbo/MergeTest

还有一个注意事项:如果不是删除第2行,而是删除第1行,那么合并会按预期发生,最后是:

2
new
3

因此,在标准(非联合)合并下会导致冲突的场景中,似乎只会出现这种奇怪现象。

1 个答案:

答案 0 :(得分:4)

--union merge正如它应该的那样工作。请参见git-merge-file手册页:

  

不要在文件中留下冲突,而是解决有利于两行一侧的冲突。

第二种情况根本不算是冲突。修改后的行不相邻(#1和#3)。