Git将文本文件与内容合并,包括合并冲突语法

时间:2016-03-23 13:35:16

标签: git syntax merge

合并两个完整的不同文件时,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如何知道哪些语法是真的还是假的?或者上面的内容只是打破了合并过程?

1 个答案:

答案 0 :(得分:1)

该文件的输出仅供您查看更改。

Git并不关心文件的内容,也没有做任何事情 在幕后的现实生活中,保存内容的增量并生成标有SHA-1的当前存储库的完整快照。

它有点复杂,但我试着解释它尽可能简单。

您建议的输出与diff3更接近diff2。 有关diff2&amp;的规格的一般知识。 diff3

这是diff3:

的输出
cauliflower
<<<<<<< HEAD
peas
potatoes
||||||| merged common ancestors
peas
=======
>>>>>>> topic
tomatoes
  

git如何知道哪些语法是真的还是假的?或者上面的内容只是打破了合并过程?

<强>再次: Git并不关心内容。

一旦合并内容(并且你可以重写整个文件),你再次将其添加到git然后git计算新差异(无论内容如何,​​你都将它留给所有人合并添加的内容或更改它)并将其提交到存储库。