让我们说我们创建一个分支new_branch
。我们在那里更改了1个文件,提交了这个文件,然后推送并向parent rep/master
创建拉取请求。
然而,拉请求差异将显示只有1个文件被更改。
那么GIT
如何理解实际上只需要合并1个文件,而不是101个文件。我的意思是parent rep/master
与child rep/new_branch
相比实际上101个文件被更改而不是1个文件..
答案 0 :(得分:4)
这是一个三向合并,这意味着git会将你的进化与之间的共同祖先进行比较:
这种差异是申请合并的。
请参阅" 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":