git pull和git fetch的不同表现如下:

git pull = git fetch + git merge

也就是说当我执行git pull的时候实际是执行了两个命令,git fetch和git merge。表示我从远程服务器上取下来的代码直接和本地代码合并。而git fetch表示从远程服务器上取代码下来放到本在缓存当中,并没有合并到本地分支。

在Git的官方文档中也说出了这一点:

在默认模式下,git pull代表先执行 git fetch再执行git merge FETCH_HEAD。

相关内容:

 

怎么撤消Git的本地提交?

Git 如何删除本地和远程分支?

Your branch is up-to-date with 'origin/master'

'git pull'和'git fetch'有什么区别?

Windows 生成Git密钥

Windows安装git客户端 提交代码到gitee(码云)

 

区别说明

  • git fetch:只把远程最新提交取到本地仓库(存于远程跟踪分支),不修改工作区。
  • git pull:等于 git fetch 加 git merge FETCH_HEAD,取回后立即合并到当前分支。
  • 因此 pull 可能直接产生合并提交或冲突,fetch 则可先查看差异再决定。
  • 稳妥做法:先 git fetch,再 git log 或 git diff 查看,最后 merge。

相关阅读

参考资料