1
/
5

Git でマージされたリモートブランチを削除 (mac)

Photo by Yancy Min on Unsplash

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 

その他

不要になったブランチは削除しましょう。