我试图通过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
因此,在标准(非联合)合并下会导致冲突的场景中,似乎只会出现这种奇怪现象。
答案 0 :(得分:4)
--union merge正如它应该的那样工作。请参见git-merge-file手册页:
不要在文件中留下冲突,而是解决有利于两行一侧的冲突。
第二种情况根本不算是冲突。修改后的行不相邻(#1和#3)。