合并两个完整的不同文件时,git会将文件更改为如下所示,以显示文件之间存在冲突:
<<<<<<< HEAD
[fileA's content]
=======
[fileB's content]
>>>>>>> newbranch
我想如果我使用伪语法更改fileA's content
:
text1
=======
text2
>>>>>>> newbranch
text3
<<<<<<< HEAD
text4
尝试合并时,冲突文件将如下:
<<<<<<< HEAD
text1
=======
text2
>>>>>>> newbranch
text3
<<<<<<< HEAD
text4
=======
[fileB's content]
>>>>>>> newbranch
问题
git如何知道哪些语法是真的还是假的?或者上面的内容只是打破了合并过程?
答案 0 :(得分:1)
该文件的输出仅供您查看更改。
Git并不关心文件的内容,也没有做任何事情 在幕后的现实生活中,保存内容的增量并生成标有SHA-1的当前存储库的完整快照。
它有点复杂,但我试着解释它尽可能简单。
您建议的输出与diff3
更接近diff2
。
有关diff2
&amp;的规格的一般知识。 diff3
。
diff2
:http://www.xmailserver.org/diff2.pdf diff3
:http://www.cis.upenn.edu/~bcpierce/papers/diff3-short.pdf 这是diff3:
的输出cauliflower
<<<<<<< HEAD
peas
potatoes
||||||| merged common ancestors
peas
=======
>>>>>>> topic
tomatoes
git如何知道哪些语法是真的还是假的?或者上面的内容只是打破了合并过程?
<强>再次:强> Git并不关心内容。
一旦合并内容(并且你可以重写整个文件),你再次将其添加到git然后git计算新差异(无论内容如何,你都将它留给所有人合并添加的内容或更改它)并将其提交到存储库。