mac のシェル環境(zsh)から、マージされたリモートのGitブランチを削除するコマンドです。
コマンド
git branch -v -r --merged origin/develop | grep -v -e master -e develop -e test | sed -e 's/origin\///g' | cut -d' ' -f 3 | xargs git push -d origin
読みやすく複数行にすると
git branch -v -r --merged origin/develop | \
grep -v -e master -e develop -e test | \
sed -e 's/origin\///g' | cut -d' ' -f 3 | xargs git push -d origin
コマンドの各パーツ
マージされたブランチを一覧で出力
git branch -v -r --merged origin/develop
ここでは origin/develop にマージされたブランチを出しています。
消してはいけないブランチを除外
grep -v -e master -e develop -e test
master, develop, test を含むブランチを消してはいけないものとして除外しています。
ここまで繋げて実行すると、対象となるブランチを見ることができます。
ブランチ名の変換
sed -e 's/origin\///g'
表示されるブランチに origin
が付いていますからその部分を消します。
ブランチ名の抽出
cut -d' ' -f 3
最終コミットのメッセージが出ていますので、それを除外します。
リモートブランチ削除
xargs git push -d origin
その他
不要になったブランチは削除しましょう。