結論
mainブランチを除くすべてのローカルブランチを削除するコマンド
git branch | grep -v "main" | xargs git branch -d
mainブランチ以外のすべてのローカルブランチが一度に削除され、ローカルブランチ一覧をスッキリさせることができます。
使用例
例えば、以下のように多くの使用済みローカルブランチが存在する場合に便利です。
main以外のローカルブランチはもう用済みだから削除したい…
% git branch
hoge
hogehoge
hogehogehoge
* main
解説
git branch
リポジトリ内の全てのブランチを一覧表示します。
grep -v "main"
"main"という文字列を含む行を除外することで、mainブランチを削除の対象リストから外しています。
xargs git branch -d
残りのブランチを一つずつ削除します。
xargsは標準入力から受け取った各行を次のコマンドの引数として渡します。
この場合、各ブランチにgit branch -d
コマンドが渡されて、それぞれのブランチが削除されます。
補足
強制削除 git branch -D
マージされていないコミットがある場合はgit branch -d
だとエラーになります。
マージしなくて構わないのであればgit branch -D
でコミットを無視して強制削除ができます。
git branch | grep -v "main" | xargs git branch -D
個別にローカルブランチを削除
git branch -d hoge
git branch -d hogehoge
git branch -d hogehogehoge