Edited at

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


目的

Gitのブランチはマージしても消えてくれないので定期的に掃除しないとゴミが残ってうざい。

というわけで、さくっと消す方法。


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

git branch --merged

※消したいのは↑で出てきたブランチ一覧。


一括削除

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

※develop と master は消さないようにしています。

※これでスッキリしますが、毎回これ書くのは辛い。


.gitconfig にalias

.gitconfigに以下を追加

[alias]

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

これで、 git delete-merged-branch develop とやると`

1. developにcheckoutし、

2. merge済みブランチを一括削除

します。

delete-merged-branch はaliasなので好きな名前をつければいいです。

また、変数にしていますが、developと指定した箇所はmasterや好きなブランチ名をいれれます。

複数の機能をまとめたFeatureブランチとかで利用できます。

e.g.) git delete-merged-branch hoge-features


補足

リモートブランチを消しても、git branch -a で出てくるリモート追跡ブランチを消す方法

git fetch --prune