Git のローカルブランチが複数あるとします。たとえば次のような状態です。
$ git branch
FOOBAR-4714/hotfix-dummy
FOOBAR-4714/dummy-custom-metrics
FOOBAR-4714/patch-dummy
FOOBAR-4714/feature-dummy
* master
ここで、 FOOBAR-4714/*
を全て削除したいとしましょう。もっとも単純な方法は git branch -D FOOBAR-4714/...
と何度もコマンドを実行することです。この例のように対象となるブランチが 4 つ程度であれば、それでもよいでしょう。しかし、これがさらに増えると面倒な作業になります。
残念なことに、ワイルドカードによるブランチの指定は git branch --list ...
などには使えるものの、git brranch -D ...
には使えません。したがって、ワイルドカードを使ってブランチを一括削除するためには、git branch --list ...
と git branch -D ...
を組み合わせることになります。
上記の例では、次のようにすることで、FOOBAR-4714/*
を全て削除できます。
$ git branch --list 'FOO-BAR-4714/*' | xargs -n 1 git branch -D
xargs -n 1
により、パイプから渡された結果を一行ずつ git branch -D
に渡すことができます。