GIT如何理解它可以获得最新的文件,而不是在差异中显示它

时间:2014-06-03 14:33:56

标签: git pull-request

让我们说我们创建一个分支new_branch。我们在那里更改了1个文件,提交了这个文件,然后推送并向parent rep/master创建拉取请求。

与此同时,父母代表改变了很多,让我们说100个文件已被更改,但是1个文件没有被触及。

然而,拉请求差异将显示只有1个文件被更改。

那么GIT如何理解实际上只需要合并1个文件,而不是101个文件。我的意思是parent rep/masterchild rep/new_branch相比实际上101个文件被更改而不是1个文件..

1 个答案:

答案 0 :(得分:4)

这是一个三向合并,这意味着git会将你的进化与之间的共同祖先进行比较:

  • 你的分支
  • parentRepo分支

这种差异是申请合并的。

请参阅" Why is a 3-way merge advantageous over a 2-way merge?"。

A----C  (yourBranch: 1 file modified, compared to A, the common ancestor)
 \
  --B   (parentRepo master: 100 files modified)

合并时:

A----C  
 \    \
  --B--D (only one file is merged to parentRepo branch)

请参阅" Pro Git book: Basic Merging":

http://git-scm.com/figures/18333fig0316-tn.png