1. ホーム
  2. ギット

[解決済み] 「失われた」コミットを含む、すべての git コミットのリストを取得する

2022-04-12 02:20:21

質問

このようなグラフがあるとします。

A---B---C---D (master)
     \
      \-E---F (HEAD)

もし私が git log --all --oneline 6つのコミットすべてを取得します。

しかし、もしそのグラフが

A---B---C---D (master, HEAD)
     \
      \-E---F

E と F が表示されません。名前のないブランチにあるコミットも含めて、git にすべてのコミットを教えてもらうことはできますか?

ありがとうございます。

解決方法は?

ブランチの先端へのポインターを失った場合、それはむしろ干し草の中から針を探すようなものです。もう参照されていないように見えるコミットをすべて見つけることができます。 git fsck --unreachable の後に捨てたコミットも含まれます。 git commit --amend リベースしたブランチの古いコミットなどなど。これらのコミットをすべて一度に見ることは、情報をかき集めるにはあまりにも多すぎます。

つまり、「興味のあるものを見失わないようにしましょう」というのが、軽妙な答えです。もっと深刻なのは、デフォルトで過去60日間ほど使用したすべてのコミットへの参照を reflog に保持することです。より重要なのは、これらのコミットがどのようなものであったかという文脈を提供することです。 .