👮♂️
GitHubでPRマージ後に自動でブランチ削除をする設定とPRマージ済みのリモートブランチをコマンドで全部消す
はじめに
アイスタイルで色々やってます白田です。
アイスタイルでは、AWSのインフラ構成をTerraformを使って管理しています。Terraformの管理は全アプリケーション/AWSアカウントの管理を行う共通的なリポジトリで行っていて、このリポジトリにPRを投げ変更を行っています。
数年前にリポジトリが作成されてから数千近いPRがマージされていますが、PRマージ後にFeatureブランチを残す/残さないがPR作成者によって統一されてなく、700近いPRマージ済みのブランチが残っていました。
今回はこのリポジトリの不要なブランチが溜まっていかないようにしつつ今ある不要なブランチを削除するため、PRマージ後のブランチの自動削除の設定導入と、便利コマンドを使って一気にマージ済みブランチの削除(お片付け)を実施しました。対応方法を残しておきます。
PRマージ後のブランチの自動削除の設定は、サクッと設定してもよかったのですが、導入前に一応社内の利用者へ確認してから行いました!
PRマージ後にブランチの自動削除設定
リポジトリの Setting > General > Automatically delete head branches にチェックを入れるだけ。(お手軽)
PRマージ済みのリモートブランチを全部消す
今回のリポジトリは、GitHub Flowで運用しているためmainブランチだけがProtected Branchになってます。
git branch -r --merged main | grep -v -e main | sed -e 's% *origin/%%' | xargs -I% git push --delete origin %
こちらを参考にさせていただきました。
ローカルブランチも消す
git fetch --prune
削除後
気持ちが良い。
Discussion