Git で複数のローカルブランチを一度に削除する方法

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 に渡すことができます。