このブログをご覧のみなさん、こんにちは。

Git のブランチはマージしても消えません。そのため、定期的に掃除しないとマージ済みの不要ブランチが残ってしまいます。かといって、毎回以下のコマンドを打つのは面倒です。

$ git branch
$ git branch -d [削除したいブランチ名]

というわけで Git でマージ済みブランチを一括削除する方法を調べました。

Git でマージ済みブランチを一括削除する方法

ローカルでマージ済みのブランチの一覧表示する

以下のコマンドでローカルでマージ済みのブランチの一覧表示されます。

$ git branch --merged

マージ済みのブランチを一括で削除する

マージ済みでもdevelopやmasterは削除されると困るので、フィルタをかけ、その後に対象ブランチを削除します。

$ git branch --merged | egrep -v '\*|develop|master' | xargs git branch -d

これで、目的を達成できますが、毎回これを実行するのは、記憶容量的にも、手の作業量的にも面倒です。というわけで楽にできる方法を考えました。

楽に Git でマージ済みブランチを一括削除する方法

.gitconfig に alias を設定する

[alias]
    de = "!f () { git checkout $1; git branch --merged | egrep -v '\\*|develop|master' | xargs git branch -d; };f"

まとめ

この設定をした後に、

$ git de develop

とすると develop を checkout 後にマージ済みブランチを一括削除してくれます。

参考情報

Git Alias – Multiple Commands and Parameters – Stack Overflow