一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令;
常用命令
git fetch
$ git fetch <远程主机名>
- 上面命令将某个远程主机的更新,全部取回本地;
- git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响;
git fetch <远程主机名> <分支名>
$ git fetch <远程主机名> <分支名>
- 上面命令取回特定分支的更新;
- 例如:取回origin主机的master分支,如下:
$ git fetch origin master
- 取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取;
代码合并
详细操作步骤
## 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支;
$ git fetch origin master:temp
## 比较本地代码与刚刚从远程下载下来的代码的区别;
$ git diff temp
## 合并temp分支到本地的master分支;
$ git merge temp
## 如果不想保留temp分支,删除;
$ git branch -d temp
直接使用 git fetch 命令
git fetch
- 创建并更新本地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上;
- 在FETCH_HEAD中设定当前分支-origin/当前分支对应,如直接到时候git merge就可以将origin/abc合并到abc分支上;
git fetch origin
- 手动指定了要fetch的remote。在不指定分支时通常默认为master;
git fetch origin dev
- 指定远程remote和FETCH_HEAD,并且只拉取该分支的提交;
对比git pull
与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷;