私のgitリポジトリはどういうわけか狂っています-私は今朝msysgitをロードし、現在のディレクトリの後にブランチ名が表示される代わりに、「((ref:re ...))」と表示され、「git status」はすべてとしてレポートします新しいファイル、「git log」、「git reflog」は、「致命的:悪いデフォルトリビジョン「HEAD」」などを通知します。
'git reflog --all'または 'gitk --all'を実行すると、リポジトリの残りの部分がそのまま表示されますが、作業していたブランチが消えたように見え、HEADが存在しないように見える理由を説明しています/何かを指す。
私はgitがあらゆる種類の情報の塊を保持していることを知っており、私のコミットが何らかの方法で孤立したと想定しているので、それらのコミットを表示してHEADをリセットできるコマンドはありますか?
編集:ああ、親愛なる。「git fsck」を発見し、「git fsck --full」で「致命的:オブジェクト03ca4 ...が壊れています」と報告されました。それについて悪魔は何ができますか?
編集:ああ、親愛なる、親愛なる。別のブランチをチェックアウトしてから、「git checkout -b lostbranchname」を使用して同じ名前で元のブランチを再作成しようとしましたが、gitは「エラー:参照refs / heads / lostbranchnameを解決できません:エラーなし、致命的:失敗しました更新のために参照をロックする:エラーなし」「エラーなし」は特に厄介なエラーでなければなりません。したがって、まだぶら下がっているように見えますが、使用したり殺したりすることはできません。
編集:スーパーデューパーああ、親愛なる。私はここで提案されているように、アンパック、再パック、および物事の交換をたくさん行いました:ハードディスク障害によって損傷したGitオブジェクトを回復する方法?、しかし今、「git status」のような無害なもののために、別のハッシュが破損していると報告されています。私はすべてがホースであると思います。Gitはとても美しいですが、私はこの種のことを扱う必要はありません。
git checkout -b lostbranchname
-ブランチの名前だけに関心がある場合(ブランチのコンテンツではない)、手動で削除(または名前の変更)することができます.git/refs/heads/lostbranchname
-これでうまくいくでしょう。