git fetch に、 --prune がオプションなのは何故？


スタックオーバーフロー向けなのか分かりませんが。質問してみます。

私は、いつも`git config --global fetch.prune true`しているのですが。  
そもそもなぜrefsが残るのでしょう。そして、なぜオプション扱いなのでしょうか。  
refsを残したほうがいい場合というのが思いつきません。

というのも「pruneすれば消える」という情報は直ぐ見つかるのですが  
「こういう時は、pruneしてはいけない！」という情報が見つからず、おまじない化していることに不安を覚えました。

pruneしてはいけない代表的な事例とは、どういう状況でしょうか。




代表的かどうかはわかりませんが、例えばこんなケースでしょうか?

  1. 隣の人からあるブランチを引き継ぎたいので、（originを経由せずに）その人のレポジトリをremoteとして追加し、直接fetch
  2. 隣の人は、渡し終わったのでローカルブランチを削除
  3. 取得したリモートブランチからローカルブランチを作成する前に、別のブランチを更新しようとしてもう一度fetch
  4. pruneしていたので、先に取得したリモートブランチも消えてしまう

デフォルトがpruneになっていないのは、安全側に倒すためではないでしょうか。




代表的かどうかはわかりませんが、例えばこんなケースでしょうか?

  1. 隣の人からあるブランチを引き継ぎたいので、（originを経由せずに）その人のレポジトリをremoteとして追加し、直接fetch
  2. 隣の人は、渡し終わったのでローカルブランチを削除
  3. 取得したリモートブランチからローカルブランチを作成する前に、別のブランチを更新しようとしてもう一度fetch
  4. pruneしていたので、先に取得したリモートブランチも消えてしまう

デフォルトがpruneになっていないのは、安全側に倒すためではないでしょうか。

