git合并冲突究竟是如何发生的?

use*_*167 39 git github git-merge merge-conflict-resolution git-branch

我已经创建了一个git存储库并添加了一个文本文件.这是100%用于学习目的.

  1. 我在文本文件中添加了"1"并将其提交给master.

  2. 从master创建一个新分支并附加"2".

  3. 最后,从master创建了一个分支并附加了"3".

您能解释一下这个或任何其他场景中可能发生的冲突吗?

Cal*_*leb 34

当两个分支都修改文件的同一区域并随后合并时,就会发生合并冲突.Git无法知道要保留哪些更改,因此需要人工干预才能解决冲突.

在这种情况下,您的步骤2和3会创建两个具有冲突更改的分支.

  • 你所说的“地区”是什么意思?那些有多大? (3认同)

Von*_*onC 29

如果合并,您将发生冲突:

  • branch2master(没有冲突)
  • branch3master(冲突):

那是因为:

  • 共同的祖先是master(第二行为空)
  • 源内容是branch3(第二行包括"3")
  • 目的地内容是最新的master(第二行包括"2",从合并branch2master)

Git会要求您选择要保留的内容("3","2"或两者).

首先,在以下后进行合并:

git config merge.conflictstyle diff3
Run Code Online (Sandbox Code Playgroud)

请参阅" 修复Git中的合并冲突? ".