2

ベアレポで利用可能なコミットIDがあります。
git show commit id、変更を含むコミットを示します。

ただし、以下のコマンドを使用すると、同じコミットが表示されません

git branch --contains <commit id>

また

git reflog show --all | grep <commit id>

コミット ID に何が起こった可能性がありますか?

4

3 に答える 3

3

ブランチを作成してコミットし、 で強制削除することができgit branch -Dます。この場合、コミットはそのように失われます。Reflog は、既存の参照のログを示します。

また、コマンドは HEAD の reflog をチェックしません。git reflog show HEADまだガベージコレクションされていない場合は、コミットを含めることができます (たとえば、切り離されたヘッドになっている場合) 。

于 2012-08-28T19:33:01.280 に答える
1

(以前の回答で申し訳ありません。完全にトピックから外れています)。

git reflogあなたgit pullまたはgit cloneリモートの場合、各コミットでは実行されないため、このコミットはこれらの操作のいずれかから発生する可能性があります。

また、デフォルトの gc 設定で gced された可能性がありますが、コミットが 90 日未満であることを確認したと思います。

于 2012-08-28T18:23:38.797 に答える
0

これらのコミットはダングリング コミットと呼ばれ、git fsck表示されると思います。git gcまたはが実行されるまで、それらは引き続き git リポジトリに存在しますgit prune。一般にgit gc、レポに失われたオブジェクトが多すぎると自動的に実行され、パック ファイルにパックされます。git gc操作は、特定の時間の前にダンリング コミットも削除します。これらのコミットはすぐに削除されますgit gc --prune=now。自動 gc の実行を無効にします。git prune --expire=nowgit config --global gc.auto 0

于 2012-08-28T18:36:11.743 に答える