一直很想搞懂git pull
和 git fetch
区别是什么,看了很多文章,越看越懵, 然后把代码拆分出来这样更容易理解了,希望对大家有帮助~
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch
:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin
的master
主分支下载最新的版本到origin/master
分支上
然后比较本地的master
分支和origin/master
分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull
:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch
和 git merge
在实际使用中,git fetch
更安全一些
因为在merge
前,我们可以查看更新情况,然后再决定是否合并,git fetch
更安全一些
因为在merge
前,我们可以查看更新情况,然后再决定是否合并