リモートトラッキングブランチを整理するGitエイリアス

リモートサーバーに存在しなくなったブランチのローカルリモートトラッキング参照を削除するgitエイリアスを作成。

Cleanup Aliases

詳細な説明

リモートトラッキングブランチの整理

時間の経過とともに、ローカルリポジトリにはサーバーで削除されたリモートブランチへの参照が蓄積されます。pruneエイリアスでこれらをクリーンアップします:

[alias]
    prune = fetch --prune

古いリモートトラッキングブランチとは

リポジトリをクローンすると、gitはリモートブランチを追跡するorigin/feature-xyzのようなローカル参照を作成します。誰かがリモートでfeature-xyzを削除すると(PRマージ後など)、ローカルのorigin/feature-xyz参照はそのまま残ります。

fetch --pruneの動作

  1. リモート(origin)に接続して新しいデータをフェッチ
  2. リモートに存在しなくなったローカルリモートトラッキング参照を特定
  3. それらの古い参照を削除

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 fetchgit pullが自動的に古い参照を整理します。

ユースケース

毎週またはプルリクエストがまとめてマージされた後に実行します。ブランチリストをクリーンに保ち、タブ補完時のブランチ名の混乱を避けるために不可欠です。多くのコントリビューターがいるリポジトリでは、古い参照が急速に蓄積されます。

試してみる — Git Alias Builder

フルツールを開く