Git 合并两个文件时拾取的文件中的更改

Git 合并两个文件时拾取的文件中的更改,git,merge,Git,Merge,例如,我有这样的历史 A -> B -> C -> F -> G ---------- feature \ D -> E -------- master 在整个历史中,我有一个文件a.txt,第一行是“sometext”。 在提交时,我决定删除“sometext”,并将第一行留空。然后我合并这两个分支。将形成一个新的提交,第一行为空。因此E包含“sometext”行,而G不包含。所以这是正在合并的分支之间的区别。gi

例如,我有这样的历史

A -> B -> C -> F -> G ---------- feature
           \
            D -> E  -------- master
在整个历史中,我有一个文件a.txt,第一行是“sometext”。
在提交时,我决定删除“sometext”,并将第一行留空。然后我合并这两个分支。将形成一个新的提交,第一行为空。因此E包含“sometext”行,而G不包含。所以这是正在合并的分支之间的区别。git如何决定在合并提交中包含什么?是因为G是在E之后进行的吗?

在这种情况下,它将识别两个分支的共同祖先
C
,并比较每个分支
C..G
C..E
上自该祖先以来的变化

由于
C..E
不触及该行,但
C..G
触及该行,因此采用了
G
的更改。如果两个分支以不同的方式更改了同一行,它将要求您手动解决冲突

这是一个:有关一些讨论,请参阅;有关更多合并选项,请参阅文档中的部分