Gitではbranch -aでリモート・リポジトリーも一覧できる。この一覧には既にリモートでは消されたリモート・リポジトリーも表示される。この一覧を更新するにはfetch --pruneを使うわけだが、いちいちそうするのは面倒くさい。どうやらfetch.pruneをtrueにするとデフォルトで--pruneを付けてfetch(及びpull)を実行してくれるようだ。
$ git config --global fetch.prune true $ git fetch From https://github.com/hail2u/example x [deleted] (none) -> origin/deleted-branch
グローバルに設定して良い場合はこれで常に--prune付きでfetchとpullが実行されるようになる。この設定はプロジェクト・ローカルで特定のリモートに対してのみにも設定でき、remote.origin.pruneをtrueにするとoriginに対してのみ--prune付きで実行されるようになる。こちらはグローバルやローカルのfetch.pruneよりも強い。
この設定の有用性はリモート・リポジトリーの運用方法やブランチの切り方などによって変わってくる。プロジェクトごとに違うこともあるので、グローバルで設定するとまずいこともあるかもしれない。しかし、僕のようにpull --pruneすら知らなくて苦労してた人は、思い切ってグローバルで有効にするのも良いだろう。