GitHubでマージ済みのローカルブランチを一括削除する方法

GitHubを使用する開発者なら誰もが直面するのが、ブランチの管理です。特にプロジェクトが大きくなるにつれて、マージ済みの不要なローカルブランチが蓄積し、整理が必要になります。ここでは、GitHubでマージ済みのローカルブランチを安全かつ効率的に一括削除する方法を紹介します。

なぜマージ済みのローカルブランチを削除するのか

マージ済みのブランチを削除する主な理由は、リポジトリの整理と管理を容易にするためです。不要なブランチが多くなると、リポジトリが乱雑になり、必要なブランチを見つけにくくなります。また、不要なブランチを削除することで、ストレージの容量も節約できます。

一括削除の手順

  1. ブランチ情報の更新
    まず、リポジトリのブランチ情報を最新の状態に更新します。ターミナルで以下のコマンドを実行します。
    git fetch --prune

  2. マージ済みブランチのリストアップ
    次に、mainブランチにマージ済みのローカルブランチを一覧表示します。(mainブランチがマージ先となっている場合)。
    git branch --merged main

  3. ブランチの一括削除
    最後に、一覧表示されたブランチを一括で削除します。
    git branch --merged main | egrep -v "(^\*|main)" | xargs git branch -d

このコマンドは、mainブランチにマージされているローカルブランチのリストを取得し、そのリストをxargsコマンドに渡して、それぞれのブランチを削除(git branch -d)します。egrep -v "(^\*|main)"は、現在チェックアウトされているブランチ(*で表示される)とmainブランチ自体を削除対象から除外します。

注意点として、この方法は安全なブランチ削除(git branch -d)を使用しているため、マージされていないブランチは削除されません。
マージされていないブランチを強制的に削除する場合は、-dオプションの代わりに-Dオプションを使用しますが、その操作は慎重に行う必要があります。

この手順により、mainブランチにマージされたローカルブランチを安全に一括削除できます。git branch -dコマンドはマージ済みのブランチのみを削除し、未マージのブランチは残すため、安心して使用できます。