目的:
リリースが終わって、Masterブランチにマージ済みの手元のブランチを一括削除したい。
コマンド
git fetch && git branch --merged origin/master | grep -v "^\s*master" | grep -v "^*" | xargs git branch -D
概要
git branch --merged {COMMIT}
で特定のCOMMITを指定してマージ済みのブランチを取得できる。そこからカレントブランチとmasterブランチを除外して削除。
ちなみにローカルにあるリモートブランチへの参照は
git remote prune origin
とか
git fetch -p
とかで消せる。
aliasを貼っておくと更に便利
alias git-delete-merged-br='git fetch && git branch --merged origin/master | grep -v "^\s*master" | grep -v "^*" | xargs git branch -D'