1

私の Git リポジトリは、破損したオブジェクトがあると主張しています。実行すると、リポジトリgit fsck --fullに破損したルース オブジェクトがあると表示されます。オブジェクトが破損しているため、 を使用して解凍することはできませんgit cat-file -tが、ファイルを削除すると fsck は次のように報告します。

broken link from tree 93e54230ef...
            to tree 5aec4ad...
missing tree 5aec4ad...

この欠落しているツリーは、欠落している唯一のファイルであると思います。実行するとgit ls-tree 93e54230ef...1行しか表示されないため、ぶら下がっているコミット/ブロブはありません: 040000 tree 5aec4ad... android. また、破損したファイルの最終更新日は昨日で、それ以来変更を加えていません。残念ながら、私が持っているこのリポジトリのクローンを確認しましたが、不足しているオブジェクトがパックまたはアンパックされているものはありません。

ぶら下がっているコミットやブロブを使用せずに、欠落している git ツリーを再構築するにはどうすればよいですか?

4

1 に答える 1

2

Git に欠けているのがツリーだけの場合、解決策は単純にwrite-treeを使用することです。

git write-tree

そのコマンドを実行した後、Git リポジトリは以前の状態に戻るはずです。

于 2012-07-24T21:58:02.427 に答える