はじめに
gitを利用している場合
油断するとチリツモの如く溜まっていくremotebranch。
見通しが悪くなったりするので
PRが通ったタイミングで消すのがベストかもしれませんがうっかりなんてことありますよね
ちょうど試してみたのでその方法の共有になります。
コマンド
git branch -r --merged | egrep -v "\\*|release|master|develop|feature/xxx" | awk '{ print substr($0, 10)}' | xargs -I branch git push origin :branch && git fetch --prune
git branch -r --merged
merge済のbranchリストを取得
egrep -v "\\*|release|master|develop|feature/xxx"
merge済であっても消して欲しくないbranchを指定
消して欲しくないremotebranchについてはしっかりチームメンバーに聞きましょうね!
アクシデントの元になる恐れがあります
awk '{ print substr($0, 10)}'
egrepの出力結果ではorigin/
が文字列に含まれており後に控えるremotebranchを消すコマンドで都合が悪いため文字をoridin/develop
-> develop
となるように整形
xargs -I branch git push origin :branch
整形された文字列を引数としてremotebranchを消す
git fetch --prune
remoteで削除されたbranchをlocalに反映
実行前にどのremotebranchが削除対象なのか確認
git branch -r --merged | egrep -v "\\*|release|master|develop|feature/xxx" | awk '{ print substr($0, 10)}' | xargs -I branch echo branch
最後に
remotebranchを消す方法については何個もやり方はあると思いますが、
一例としてみてもらえると幸いです