2014-02-27 262 views
0

有一些本地的Git分支大塊局部的Git分支,讓我們說,例如:刪除包含字符串

… 
Case001-FeatureA-doX 
Case002-FeatureA-doX 
Case001-FeatureB-doX 
Case002-FeatureB-doX 
… 

我怎樣才能從終端刪除包含「FeatureA」或「Case001」那些人?

我想它一定是類似git branch -l | grep "FeatureA" …但我不知道如何繼續。

更新與我工作的解決方案

$ git for-each-ref --format='git branch -d %(refname:short)' refs/heads/Case001-* | sh -x 

回答

1
git for-each-ref --format='git branch -d %(refname:short)' \ 
     refs/heads/*-FeatureA-dox refs/heads/Case001-*-dox \ 
| sh -x 
+0

謝謝@jthill,它幾乎工作。 + git分支-d refs/heads/Case001-dox。錯誤:未找到分支'refs/heads/Case001-dox'。問題在於它被稱爲「Case001-dox」,而不是「refs/heads/Case001-dox」。 –

+0

那麼應該使用'%(refname:short)'。固定。 – jthill

1

我沒有在工作混帳,但我認爲混帳-d可以採取多個分公司,使

git -d Case001* 

可以工作。否則

git branch --merged | grep "FeatureA" | xargs git branch -D 

xargs是關鍵點。你可以按你想要的方式列出你的分支。