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

  • 134
    Like
  • 0
    Comment
More than 1 year has passed since last update.

目的

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