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

photo credit: Keyboard via photopin (license)

photo credit: Keyboard via photopin (license)

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