一直说是fetch和merge的结合,那么分开来看下。现在origin和本地有分歧。

【git】pull 远程分支

手动模仿pull:

先fetch:

【git】pull 远程分支

所以fetch说做的就是把远程分支的objects和分支名拉下来,然后分支名存在.git/FETCH_HEAD文件,相应的obj存在./git/objects下。

这就是fetch所做的,接下来还需要和本地的merge。

merge:

【git】pull 远程分支

这就是手动merge fetch下来的东西,最后新加一个提交。

【git】pull 远程分支

此时就可以push了。

相关文章: