私はgit 1.6.4.2を実行しています。ガベージコレクションに「エラー:<SHA1>
が見つかりません」というエラーが表示されます。Git - 欠けているBLOBから回復する方法
私は、欠落したオブジェクトがblobであると判断することができ、blobファイルを戻す方法はありません。 "git add"と "git commit"を実行する2つのスクリプトが同時に実行されていて、相互に干渉して新しいバージョンのファイルをコミットし、古いバージョンのブロブが消えたようです。
私が今しようとしているのは、失われたBLOBを参照するツリーを参照するコミットを取り出すためにリポジトリをロールバックすることです。
私はコミットしているブランチを知っていますから、 "git reset"を実行してダフコミットの親に巻き戻しました。そして、その支店がどこか別の場所に併合されたことを知っているので、その支店も巻き戻しました。私が知る限り、ダフコミット/ツリー/ブロブは何にも参照されません。しかし、git prune --expire = nowの後にgit gcを実行すると、見つからないオブジェクトについてのエラーが表示されます。
私の質問はこうです:どのようにduff blob idを含むツリーオブジェクトを見つけるためにgitデータベースに問い合わせることができますか?どうすればgit pruneに何が残っているのかを知ることができますか?
トリッキー!
おかげ ケビン
もう少し、それは私の質問への答えがされていることが判明し掘った後
試した 'git fsck'? http://book.git-scm.com/4_maintaining_git.html –
私は何が起こったのか分かりません。あなたは 'git fsck'の言うことを報告できますか? –
もう少し掘り下げたら、私の質問はここで答えられることが分かります:http://stackoverflow.com/questions/7201720/how-to-delete-a-blob-from-git-repo git pruneはありませんでした。 reflogがまだそれを参照していたために巻き戻してしまったものを剪定する - git reflog expire --exires = now --all fixed と参照された投稿は、参照されるすべてのコミットに対してgit lstreeを実行するためのメカニズムを提供するblob – kbro