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。
相关内容:
Your branch is up-to-date with 'origin/master'
Windows安装git客户端 提交代码到gitee(码云)
区别说明
- git fetch:只把远程最新提交取到本地仓库(存于远程跟踪分支),不修改工作区。
- git pull:等于 git fetch 加 git merge FETCH_HEAD,取回后立即合并到当前分支。
- 因此 pull 可能直接产生合并提交或冲突,fetch 则可先查看差异再决定。
- 稳妥做法:先 git fetch,再 git log 或 git diff 查看,最后 merge。
相关阅读
- Your branch is up-to-date with 'origin/master'
- Git 如何删除本地和远程分支?|命令详解与操作步骤
- Git 配置多个ssh key同时在多个平台上提交代码
- Ubuntu 20.04 搭建 Git 服务器:安装、配置与使用步骤