🚀
リモートブランチを一括で削除する
リモートブランチを大掃除したいのですが、一括で削除する方法がすぐに出てこなかったので、
メモとして残しておきたいと思います。
リモートブランチを一括で削除する方法
下記のスクリプトで、mainとstagingとdevelop以外のリモートブランチを一括で削除します。
git branch --remote | \
grep -v -e master -e main -e staging -e develop | \
sed -e 's% *origin/%%' | \
xargs -I% git push --delete origin %
他にも除外したいブランチがあれば、 -e ブランチ名
で繋げていけば良いです!
例えばmain、staging、developブランチに加えて、ブランチA、ブランチBも削除したくない場合は、
git branch --remote | \
grep -v -e master -e main -e staging -e develop -e ブランチA -e ブランチB | \
sed -e 's% *origin/%%' | \
xargs -I% git push --delete origin %
という風につなげていきます。
リモートブランチのマージ済みのブランチを一括で削除する方法
こちらもmainとstagingとdevelopを除外しています。
git branch --remote --merged main | \
grep -v -e main -e staging -e develop | \
sed -e 's% *origin/%%' | \
xargs -I% git push --delete origin %
こちらも同様に、 -e ブランチ名 でつなげていけば、特定のブランチを削除しないように指定できます。
以上の方法で、リモートブランチの削除を行うことができます。
リモートで削除されたブランチを、ローカルでも削除したい
リモートで削除されたブランチをローカルでも削除したい場合は、
git pull --prune
で行うことができます。
以上で、リモートブランチとローカルブランチの大掃除をすることができますので、
皆さんもぜひ試してみてください!
Discussion