🐈‍⬛

【一撃必殺💥】main 以外のマージ済みブランチを一括削除する方法

に公開

【Git】main以外のマージ済みブランチを一括削除する方法

開発が進むにつれて、マージ済みブランチが大量に残ることがよくあります。これを一つずつ削除するのは手間なので、効率よく一括削除する方法を紹介します。

結論: 一括削除コマンド

次のコマンドで、main ブランチ以外のマージ済みブランチをまとめて削除できます。

git branch --merged main | grep -v 'main' | xargs git branch -d

コマンドの意味

各コマンド部分の解説です。

  • git branch --merged main
    • main にマージ済みのブランチを一覧表示します。
  • grep -v 'main'
    • 表示された一覧から main を除外します。
  • xargs git branch -d
    • 結果の各ブランチを削除します。

実行例

$ git branch
  feat/#101
  feat/#102
* main

$ git branch --merged main | grep -v 'main' | xargs git branch -d
Deleted branch feat/#101 (was a1b2c3d).
Deleted branch feat/#102 (was d4e5f6a).

$ git branch
* main

強制削除したい場合

まだマージされていないブランチを含めて、強制削除する場合は以下のコマンドを使用します。

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

この方法は未マージのブランチも削除するため、慎重に実行してください。


個人的には、この方法を知っているとリポジトリの整理が非常に楽になりました。気づいたらマージ済みのローカルブランチが増えているので定期的に使用しています。

参考

https://git-scm.com/docs/git-branch

Discussion