マージ済みブランチを一括削除するGitエイリアス
現在のブランチに完全にマージされたすべてのローカルブランチを安全に削除するgitエイリアスを作成。main、master、developは除外。
Cleanup Aliases
詳細な説明
マージ済みローカルブランチの削除
フィーチャーブランチがマージされた後、ローカルコピーが残ります。このエイリアスで一括で安全に削除できます:
[alias]
cleanup = !git branch --merged | grep -v '\*\|main\|master\|develop' | xargs -n 1 git branch -d
コマンドの分解
3段階のシェルパイプライン(!プレフィックス付き)です:
git branch --mergedHEADから到達可能なすべてのローカルブランチ(現在のブランチに完全にマージ済み)を一覧表示grep -v '\*\|main\|master\|develop'現在のブランチ(*)、main、master、developをフィルタリングして保護xargs -n 1 git branch -d残りの各ブランチ名をgit branch -dに渡して安全に削除
安全性の保証
-dフラグ(小文字)は完全にマージされたブランチのみを削除します。未マージのコミットがあるブランチは削除を拒否してエラーを表示します。これにより偶発的なデータ損失を防ぎます。
例
# クリーンアップ前
git branch
# feature/login
# feature/payments
# fix/typo
# * main
git cleanup
# Deleted branch feature/login (was a1b2c3d).
# Deleted branch feature/payments (was e4f5g6h).
# Deleted branch fix/typo (was i7j8k9l).
# クリーンアップ後
git branch
# * main
保護ブランチのカスタマイズ
ワークフローに固有の追加ブランチを保護するためにgrep -vパターンを修正:
[alias]
cleanup = !git branch --merged | grep -v '\*\|main\|master\|develop\|staging\|release' | xargs -n 1 git branch -d
ユースケース
プルリクエストのマージ後や各スプリントの終わりに実行して、完了したフィーチャーブランチをクリーンアップします。ローカルブランチリストを管理しやすく保ち、どのブランチがまだアクティブかの混乱を避けます。