- gitでリモート及びローカルのマージ済みブランチを削除したい場合がある
- 数ヶ月に一度くらいは発生する作業なので、チートシートにまとめてみました
- current branchから見てマージ済みのブランチが候補として指定されます。例えば本番と同期しているのがmaster branchならば、masterをチェックアウトしてから下記のコマンドを実行すると良いでしょう
- grepでmasterかdevelop以外のブランチを指定しているので、対象から外したい文字列が他にあればここをいじれば良いと思います
# リモートブランチお掃除候補表示
git branch -a --merged | grep -v 'master\|develop' | grep remotes/origin | sed -e 's% *remotes/origin/%%'
# リモートブランチお掃除
git branch -a --merged | grep -v 'master\|develop' | grep remotes/origin | sed -e 's% *remotes/origin/%%' | xargs -I% git push origin :% --no-verify
# ローカルブランチお掃除候補表示
git branch --merged | grep -v 'master\|develop'
# ローカルブランチお掃除
git branch --merged | grep -v 'master\|develop' | xargs -I% git branch -D %