主分支内容
Hello
Hi
Salut
其他分支内容
Hi
Hey
Yo
很明显,这应该是一个冲突的合并,git应该强调当前和即将发生的变化,但事实并非如此,它说:
$ git merge tampering
Merge made by the 'ort' strategy.
greetings.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
当我使用--edit合并时,它通常会突出显示
$ git merge tampering --edit
Auto-merging greetings.txt
CONFLICT (content): Merge conflict in greetings.txt
Automatic merge failed; fix conflicts and then commit the result.
在Git中,合并通常是三方合并,它只考虑三个点:两个头和一个称为合并基的点,通常是共同的祖先。
当执行合并时,如果一边有更改,但另一边没有更改,Git甚至不看文件的内容就采用了更改。(如果一方有一个对象ID与合并基相同的blob,而另一方没有,Git可以检测到这一点。(听起来这就是你的情况,这就是为什么没有合并冲突。
另一种发生相同情况的情况是,有人在合并的两侧进行相同的更改,然后恢复其中一个更改。被还原的一方没有变化,因此Git采用了这个变化,而大多数人认为这个变化已经被还原了。