git pull和git fetch的区别

2017-01-13 11:40:45来源:CSDN作者:LEON1741人点击

大家都知道,git中从远程的分支获取最新的版本到本地有2个命令,git pull和git fetch。但是,这两个命令究竟有什么区别?使用时候该怎么选择呢?很多人不是很清楚,我自己也不是很清楚。今天就特地从网上找了些相关资料,进行了总结,便于以后查阅。

1、git fetch:从远程拉取最新的版本到本地仓库,但是不会自动merge。fetch之后,如果没有后续的merge操作,那么你看到的代码仍然是你自己修改的代码,而不是最新的服务器端的代码。所以,严格来说,如果要把服务器端的代码真正合并到你的分支上,你需要执行以下几个步骤:

git fetch origin mastergit log -p master..origin/mastergit merge origin/master

以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上。
然后查看日志,比较本地的master分支和origin/master分支的差别。
最后进行合并。

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmpgit diff tmp git merge tmp

从远程获取最新的版本到本地的tmp分支上。
之后再进行比较合并。

2、git pull:相当于是从远程获取最新版本并立即merge到本地的版本上。

git pull origin master

上述命令其实相当于git fetch 和 git merge,两个操作一步到位。

注意:在实际使用中,git fetch更安全一些。
因为在merge前,我们可以查看更新情况,然后再决定是否合并。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台