标题:Git版本控制之Git fetch和git pull的区别 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Fri, 23 Jun 2017 00:28:17 +0000 作者:jackxiang 地址:http://jackxiang.com/post/9230/ 内容: 背景:常常我们用git pull 命令较多,而用git fetch较少,这两者有可区别,而我们在开发时可先用git fetch再git merge可能更安全一些,因为咱完全不用像git pull一样立即就自动merge可以用git diff进行比对。 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前,我们可以查看更新情况,然后再决定是否合并 结束 来自:https://zhidao.baidu.com/question/200204875340723965.html ===================================================== 模拟实践如下: $git fetch origin master From gitlab.boosh.com.cn:lvdev/jackxiang.com * branch master -> FETCH_HEAD 如果有变化,可: $git diff $git merge origin/master Merge made by recursive. .../static/js/manifest.334733dc1613e9cc4ac4.js | 2 ++ .../static/js/manifest.334733dc1613e9cc4ac4.js.map | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) create mode 100644 jackxiang.com/static/js/manifest.334733dc1613e9cc4ac4.js create mode 100644 jackxiang.com/static/js/manifest.334733dc1613e9cc4ac4.js.map 重来一次,这次fetch时结果没有变化的情况: From gitlab.boosh.com.cn:lvdev/jackxiang.com * branch master -> FETCH_HEAD $git merge origin/master Already up-to-date. Generated by Jackxiang's Bo-blog 2.1.1 Release