2017-05-31 38 views
0

當我檢查我的遠程分支機構如何通過所有遠程分支機構循環,而忽略HEAD

git branch -r 

    remotes/1 
    remotes/2 
    remotes/HEAD -> origin/master 
    remotes/3 
    remotes/4 
    remotes/5 

我要檢出所有的遠程分支用一個命令。我可以通過git branch -r輸出,但比它的顯示與我想忽略HEAD --> origin/master部分問題循環:

error: unknown switch `>' 
usage: git checkout [<options>] <branch> 
    or: git checkout [<options>] [<branch>] -- <file>... 

有沒有辦法忽略的那部分?

+0

試試'git branch -r | grep -v「 - >」' – ElpieKay

回答

0

最穩定將是awk來讀答案的字段:

git branch -r | awk '{print $1}' | awk -F/ '{print "remote="$1"; branch="$2";" }' | while read l 
do eval $l 
    echo git checkout -b $branch $remote/$branch 
done 

或類似的東西。

+0

第二個awk可以用'sed's @([^ /] *)/(。*)@ remote = \ 1替換; branch = \ 2 @''來處理包含'/'的分支。 – hlovdal

+0

是「或類似的東西」;) – ikrabbe