Version control 第二次、第三次等合并文件时,合并是如何工作的?

Version control 第二次、第三次等合并文件时,合并是如何工作的?,version-control,merge,Version Control,Merge,我很想知道修订控制系统是如何进行合并的 假设您有一个文件a。在一个分支上,文件a被修改-称为文件B。在另一个分支上,文件a被修改-称为文件C: B / A \ C 当第二个分支合并到第一个分支中时,我了解到在B、C和它们的父级a之间执行三方合并。结果是第一个分支上的文件D: B--D / A \ C 现在我不明白的是,在另一次迭代之后会发生什么。D修改为E,C修改为F: B--D--E / A \ C--F 如果我们想从第二个分支到第一个分支再进行一次合

我很想知道修订控制系统是如何进行合并的

假设您有一个文件a。在一个分支上,文件a被修改-称为文件B。在另一个分支上,文件a被修改-称为文件C:

  B
 /
A
 \
  C
当第二个分支合并到第一个分支中时,我了解到在B、C和它们的父级a之间执行三方合并。结果是第一个分支上的文件D:

  B--D
 /
A
 \
  C
现在我不明白的是,在另一次迭代之后会发生什么。D修改为E,C修改为F:

  B--D--E
 /
A
 \
  C--F

如果我们想从第二个分支到第一个分支再进行一次合并,那么三方合并涉及的3个文件是什么?

我将给出一个使用Git的具体示例(其他版本控制系统将有所不同)。当您将B和C合并在一起时,您将获得如下所示的历史记录:

  B---D
 /   /
A   /
 \ /
  C
此时,D有两个父项,B和C。在你做更多的工作,引入E和F并进行合并后,你会得到如下结果:

  B---D--E--G
 /   /     /
A   /     /
 \ /     /
  C-----F
在合并中,E和F之间最接近的公共父级是C


文档中有更多的示例和说明,说明了这是如何工作的。此外,本文还有更多的描述、示例和更好的图片(从合并讨论的“历史”部分开始)。

我猜涉及的3个文件是E、F和A。请参见中的图3-16