Git merge 合并所有跟踪文件(快照)或更改的文件?

Git merge merge all tracking files(snapshot) or changed files?

假设我们有三个文件 1 2 3 并且它们在每个文件中都有初始值 6 (commit a)

其中:

当我将分支1合并到分支2时,只有文件3有合并冲突?
这是为什么?

我的理解是提交d和提交e会将所有跟踪文件合并在一起,所以所有文件应该有合并冲突?

合并冲突通常发生在并发 修改(在文件的同一行上)。

在您的更改序列中,只有 file3 在 branch1 和 branch2 中都被修改了。
所以合并将是有道理的:

  • 报告(合并)从 branch1 到 branch2 的修改,其中提交 d 恢复了 ab 的更改(回到 6):合并包括保留它们的修改分支 2.
  • 检测到 file3 的冲突,该文件已在以下位置修改:
    • 提交 d(分支 1)
    • 提交(分支 2)