3 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以從所有遙控器中獲取所有分支,如下所示:
git fetch --all
這基本上是一種權(quán)力移動(dòng)。
fetch
更新遠(yuǎn)程分支的本地副本,這樣對(duì)于本地分支機(jī)構(gòu)來(lái)說(shuō)總是安全的但是:
fetch
不會(huì)更新本地分支(跟蹤遠(yuǎn)程分支); 如果你想更新你的本地分支,你仍然需要拉每個(gè)分支。fetch
不會(huì)創(chuàng)建本地分支(跟蹤遠(yuǎn)程分支),您必須手動(dòng)執(zhí)行此操作。如果要列出所有遠(yuǎn)程分支:git branch -a
要更新當(dāng)?shù)氐姆种C(jī)構(gòu),其跟蹤遠(yuǎn)程分支機(jī)構(gòu):
git pull --all
但是,這仍然不夠。它僅適用于跟蹤遠(yuǎn)程分支的本地分支。要跟蹤所有遠(yuǎn)程分支,請(qǐng)執(zhí)行此oneliner BEFORE git pull --all
:
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
TL; DR版本
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; donegit fetch --allgit pull --all
(看起來(lái)拉取所有遙控器的所有分支,但我總是首先獲取以確定。)
僅當(dāng)服務(wù)器上存在未由本地分支跟蹤的遠(yuǎn)程分支時(shí),才運(yùn)行第一個(gè)命令。
PS AFAIK git fetch --all
和git remote update
是等價(jià)的。
卡米爾索佐的評(píng)論,人們發(fā)現(xiàn)有用。
我不得不使用:
for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done因?yàn)槟愕拇a創(chuàng)建了名為的本地分支,
origin/branchname
并且每當(dāng)我提到它時(shí),我得到的“refname”origin / branchname'都是不明確的。

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
列出遠(yuǎn)程分支:git branch -r
您可以將它們作為本地分支機(jī)構(gòu)查看:git checkout -b LocalName origin/remotebranchname
- 3 回答
- 0 關(guān)注
- 7007 瀏覽
添加回答
舉報(bào)