Version control 第二次、第三次等合并文件时,合并是如何工作的?
我很想知道修订控制系统是如何进行合并的 假设您有一个文件a。在一个分支上,文件a被修改-称为文件B。在另一个分支上,文件a被修改-称为文件C: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 如果我们想从第二个分支到第一个分支再进行一次合
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