リモートトラッキングブランチを整理するGitエイリアス
リモートサーバーに存在しなくなったブランチのローカルリモートトラッキング参照を削除するgitエイリアスを作成。
Cleanup Aliases
詳細な説明
リモートトラッキングブランチの整理
時間の経過とともに、ローカルリポジトリにはサーバーで削除されたリモートブランチへの参照が蓄積されます。pruneエイリアスでこれらをクリーンアップします:
[alias]
prune = fetch --prune
古いリモートトラッキングブランチとは
リポジトリをクローンすると、gitはリモートブランチを追跡するorigin/feature-xyzのようなローカル参照を作成します。誰かがリモートでfeature-xyzを削除すると(PRマージ後など)、ローカルのorigin/feature-xyz参照はそのまま残ります。
fetch --pruneの動作
- リモート(
origin)に接続して新しいデータをフェッチ - リモートに存在しなくなったローカルリモートトラッキング参照を特定
- それらの古い参照を削除
Before/After
# 整理前
git branch -r
# origin/main
# origin/feature-login (リモートで削除済み)
# origin/feature-payments (リモートで削除済み)
# origin/feature-search
git prune
# 整理後
git branch -r
# origin/main
# origin/feature-search
すべてのフェッチで自動整理
すべてのフェッチで自動的に整理したい場合:
git config --global fetch.prune true
このグローバル設定により、すべてのgit fetchとgit pullが自動的に古い参照を整理します。
ユースケース
毎週またはプルリクエストがまとめてマージされた後に実行します。ブランチリストをクリーンに保ち、タブ補完時のブランチ名の混乱を避けるために不可欠です。多くのコントリビューターがいるリポジトリでは、古い参照が急速に蓄積されます。