简单点说,git pull相当于先执行git fetch,然后执行git merge做代码合并。
我们可以随时执行git fetch来更新refs/remotes/<remote>/下的远程tracking分支。但fetch操作不会更改refs/heads下的本地分支,也不会更改工作副本,这个操作是安全的。
而git pull操作则会把远程版本最新更改更新到本地分支,同时还更新其他远程跟踪分支。
git官方文档对git pull的解释:
In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD.
大概意思是:默认模式下,git put是执行git fetch以及git merge FETCH_HEAD的快捷方式。