このブログをご覧のみなさん、こんにちは。
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