git fetch 与 git pull 区别
目录
当远程主机版本库与本地版本库不一致时,可以使用git fetch将远程的更新取回到本地。
git fetch会取回所有分支更新,也可更新指定分支,如:
1 | git fetch <远程主机名> <分支名> |
上面是取回远程develop分支。
其中 使用git remote可查看远程主机。
而git pull是取回远程分支再与本地分支合并。
1 | $ git pull <远程主机名> <远程分支名>[:<本地分支名>] |
上面是取回远程分支develop并且与本地branch1分支合并,若与当前分支合并则本地分支名部分可省略,如:
1 | # 当前分支为branch1,则下面的写法和上面命令效果相同 |
git pull相当于是先git fetch再git merge,如:
1 | $ git fetch origin |
若本地远程有单一追踪关系,还可省写为:
1 | $ git pull |
简单的说 git fetch仅将远程仓库的更新取回到本地仓库,不影响当前代码,而git pull除了取回外还会与workspace代码合并,影响当前代码。