git で main と develop 以外のブランチを一括削除するワンライナーのコマンド

git-delete-branches

はじめに

Git を使ってチーム開発をしていると手元のブランチが増えすぎて削除が面倒という人いないでしょうか。
そんな時に使えるワンライナーの便利なコマンドを紹介します。

結論

状況に合わせて以下のコマンドをお使いください。

main ブランチ以外を削除したい

git branch | grep -v main | xargs git branch -D

main と develop ブランチ以外を削除したい

grep では正規表現を利用できるため、以下のように複数文字列を OR で指定することもできます。
git branch | grep -v "main\|develop" | xargs git branch -D

main と feature ブランチ以外を削除したい

GitHub Flow で重宝するコマンドです。
git branch | grep -v "main\|feature" | xargs git branch -D

コマンドの解説

これらは3つの処理をパイプライン | としています。
git branch でブランチの一覧を表示します。
❯ git branch develop hotfix/blog * main
つぎに、grep -v で(正規表現で)指定した文字列以外を抽出します。
❯ git branch | grep -v main develop hotfix/blog
そして、これらを引数 xargs として git branch -D でブランチを削除するというわけです。
git branch | grep -v main | xargs git branch -D

おわりに

grep -v正規表現で書くことができ、厳密には maindevelop という文字列を含まないブランチを削除するワンライナーのコマンドです。
そのため、develop-blog といった develop を含む文字列は削除されません。 この辺りは正規表現を勉強してカスタマイズできると良いですね。
株式会社キカガク 代表取締役会長
吉崎 亮介
twitter: @yoshizaki_91

\ 次期受講生募集中 /

経営から技術まですべての力を手に入れたいあなたへ

【次期受講生募集】経営から技術まで仲間と一緒にすべての力を手に入れたいあなたへ

『起業家精神 × 学び方改革』が起こす行動の劇的な変化!
キカガク創業者の吉崎が考える新しい起業家育成の環境。
スキルばかり磨いて変わらない現実を変えていきましょう!