マージ済みブランチを一括削除するGitエイリアス

現在のブランチに完全にマージされたすべてのローカルブランチを安全に削除するgitエイリアスを作成。main、master、developは除外。

Cleanup Aliases

詳細な説明

マージ済みローカルブランチの削除

フィーチャーブランチがマージされた後、ローカルコピーが残ります。このエイリアスで一括で安全に削除できます:

[alias]
    cleanup = !git branch --merged | grep -v '\*\|main\|master\|develop' | xargs -n 1 git branch -d

コマンドの分解

3段階のシェルパイプライン(!プレフィックス付き)です:

  1. git branch --merged HEADから到達可能なすべてのローカルブランチ(現在のブランチに完全にマージ済み)を一覧表示
  2. grep -v '\*\|main\|master\|develop' 現在のブランチ(*)、main、master、developをフィルタリングして保護
  3. 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

ユースケース

プルリクエストのマージ後や各スプリントの終わりに実行して、完了したフィーチャーブランチをクリーンアップします。ローカルブランチリストを管理しやすく保ち、どのブランチがまだアクティブかの混乱を避けます。

試してみる — Git Alias Builder

フルツールを開く