不要なブランチを削除する

gitの不要なローカルブランチを削除する方法です。

1. 対応するリモートブランチが削除済みの場合

追跡しているリモートブランチが削除されている場合、以下のようにするとそれに対応したローカルブランチが削除されます。

git fetch --prune
# または
git fetch -p

2. masterにマージ済みのブランチの場合

マージ済みブランチは

git branch --merged

によって得られるので、masterにマージ済みのブランチを一括削除する場合は、masterブランチに移動して、以下のようにします。

git branch --merged | grep -v '*' | xargs -I % git branch -d %

これは(当然ながら)作業している当のローカルブランチを基準にするので、masterブランチに移動しなかったり作業前にpullしないでリモートとの差分が生じてたりすると期待通りの動作をしない場合もあるので注意が必要です。

3. 参考