2017-03-27 21 views
0

私はすべてのマージされたブランチを削除しようとしています。私はいつも使用しましたマージされたすべてのgitブランチを削除する - 致命的:ブランチ名が必要ですか?

しかし、私は以前このコマンドを使用していたにもかかわらず何らかの理由でもう何も動作しません。

+0

'| xargs git branch -d'を実行します。それでも説明できない場合は、さらに照明のために 'egrep'を残してみてください。 – torek

答えて

4

stdinに入力がない場合 - たとえば、前のパイプラインが出力を生成しない場合 - xargsは引数なしでコマンドを実行します。この場合には、されています

git branch --merged | egrep -v "(^\*|master|dev)" 

は出力を生成しません、そしてxargsが実行されます:

git branch -d 
あなたがあなた自身のコマンドラインでは、生成することを試してみた場合、

fatal: branch name required 

最も簡単な解決策は、xargs--no-run-if-emptyフラグを追加することです。

git branch --merged | 
egrep -v "(^\*|master|dev)" | 
xargs --no-run-if-empty git branch -d 
+0

削除する他のブランチがない場合は追加してくれてありがとう! – AjaxLeung

関連する問題