git pull --help如何「輕鬆」拉所有分支?
將遠程存儲庫中的更改合併到當前分支中。
我拉着git倉庫離線查看代碼,並喜歡有不同分支的更新代碼。如何輕鬆地爲所有分支拉取代碼而無需手動爲每個分支拉動?
--all - 取回所有遙控器。
- 都沒有幫助。
git pull --help如何「輕鬆」拉所有分支?
將遠程存儲庫中的更改合併到當前分支中。
我拉着git倉庫離線查看代碼,並喜歡有不同分支的更新代碼。如何輕鬆地爲所有分支拉取代碼而無需手動爲每個分支拉動?
--all - 取回所有遙控器。
- 都沒有幫助。
如果本地存儲庫僅用於只讀,並且沒有任何文件被修改,那麼下面的腳本就可以實現。
for i in $(git branch | sed 's/^.//'); do git checkout $i; git pull; done
似乎沒有相同的git等效命令。
pull
將遠程分支合併到您當前的本地分支,因此拉動所有遠程分支可能不是您想要的。
您必須單獨合併每個分支。如果你合併成多個分支並且其中有多個合併衝突,那麼你怎麼可能同時解決呢?
Gareth - 正如我所提到的,我只用git進行離線查看,不會有任何衝突。 git命令或shell腳本可能滿足我的要求。 –
像Praveen Sripati的回答一樣,但作爲一個shell函數,它將您帶回到您開始的分支。
只是把這個在你的〜/ .bash_aliases文件:
function pull-all() {
START=$(git branch | grep '\*' | set 's/^.//');
for i in $(git branch | sed 's/^.//'); do
git checkout $i;
git pull || break;
done;
git checkout $START;
};
隨着||如果出現衝突或類似情況,打破它並不會令人滿意。
工作完美,thx隊友! –
靈感來自@cellofellow我加this我.profile
在Mac OS X:
function git-pull-all() {
START=$(git symbolic-ref --short -q HEAD);
for branch in $(git branch | sed 's/^.//'); do
git checkout $branch;
git pull ${1:-origin} $branch || break;
done;
git checkout $START;
};
function git-push-all() {
git push --all ${1:-origin};
};
的主要區別是:
我得到當前分支git branch | grep '\*' | set 's/^.//'
而不是git branch | grep '\*' | set 's/^.//'
。
您可以提供遙控器作爲參數,例如git-pull-all origin
。如果您省略參數,則默認爲原點。
還添加了一個類似的快捷方式將多個分支推回服務器。
幹得好。我喜歡改變使用哪個遙控器的選項。 – cellofellow
如果您只需要離線功能,您可以簡單呼叫git fetch -all
以獲取所有當前信息。現在,您可以在磁盤上獲得所有信息,並可以脫機工作。簡單合併或簽出您想要處理的分支。 Git pull是git fetch && git merge
。
http:// stackoverflow。com/questions/4318161/can-git-pull-all-update-all-my-local-branches should help – VonC