一旦遠(yuǎn)程主機(jī)的版本庫有了更新(Git術(shù)語叫做commit),需要將這些更新取回本地,這時(shí)就要用到git fetch命令;
常用命令
git fetch
$ git fetch <遠(yuǎn)程主機(jī)名>
- 上面命令將某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地;
- git fetch命令通常用來查看其他人的進(jìn)程,因?yàn)樗?strong>取回的代碼對(duì)你本地的開發(fā)代碼沒有影響;
git fetch <遠(yuǎn)程主機(jī)名> <分支名>
$ git fetch <遠(yuǎn)程主機(jī)名> <分支名>
- 上面命令取回特定分支的更新;
- 例如:取回origin主機(jī)的master分支,如下:
$ git fetch origin master
- 取回的更新,在本地主機(jī)上要用"遠(yuǎn)程主機(jī)名/分支名"的形式讀取。比如origin主機(jī)的master,就要用origin/master讀取;
代碼合并
詳細(xì)操作步驟
## 在本地新建一個(gè)temp分支,并將遠(yuǎn)程origin倉庫的master分支代碼下載到本地temp分支;
$ git fetch origin master:temp
## 比較本地代碼與剛剛從遠(yuǎn)程下載下來的代碼的區(qū)別;
$ git diff temp
## 合并temp分支到本地的master分支;
$ git merge temp
## 如果不想保留temp分支,刪除;
$ git branch -d temp
直接使用 git fetch 命令
git fetch
- 創(chuàng)建并更新本地遠(yuǎn)程分支。即創(chuàng)建并更新origin/xxx 分支,拉取代碼到origin/xxx分支上;
- 在FETCH_HEAD中設(shè)定當(dāng)前分支-origin/當(dāng)前分支對(duì)應(yīng),如直接到時(shí)候git merge就可以將origin/abc合并到abc分支上;
git fetch origin
- 手動(dòng)指定了要fetch的remote。在不指定分支時(shí)通常默認(rèn)為master;
git fetch origin dev
- 指定遠(yuǎn)程remote和FETCH_HEAD,并且只拉取該分支的提交;
對(duì)比git pull
與git pull相比git fetch相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地,但不會(huì)自動(dòng)merge。如果需要有選擇的合并git fetch是更好的選擇。效果相同時(shí)git pull將更為快捷;