我有一个已损坏的git对象。 git objects dir中文件的大小为0。
首先是fsck:
git fsck --full
fatal: loose object a35c1489005cca1ffeb3c2d3e4d63988408b6a24 (stored in .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24) is corrupted
然后是ls:
ls -l .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24
----------+ 1 sampath ???????? 0 Sep 13 15:26 .git/objects/a3/5c1489005cca1ffeb3c2d3e4d63988408b6a24
磁盘上不存在该文件!?
# git cat-file -t a35c1489005cca1ffeb3c2d3e4d63988408b6a24
error: unable to find a35c1489005cca1ffeb3c2d3e4d63988408b6a24
fatal: git cat-file a35c1489005cca1ffeb3c2d3e4d63988408b6a24: bad file
当我试图拉动时,我首先看到了这个错误 我尝试删除文件并进行拉动,但这不起作用。它抱怨文件丢失了。
当我删除文件并运行fsck时,它向我展示了很多悬空物体
# git fsck --full
broken link from commit 1e5980c224ff19b19ad99dbefed4c7c64c58aee6
to tree a35c1489005cca1ffeb3c2d3e4d63988408b6a24
dangling tree 0401d636a512b208dffd6ac6e153ab0a061f8d5d
dangling blob 58014c0266784a1e3cc1502de82837c5f36c8514
dangling tree 0507fa56260c693cea678eab0343240c5bba06ad
dangling tree 130770880c664a0b0cf5a21d037cbdba7480dc90
我厌倦了几次提交但没有帮助 有关如何从中恢复的任何指示?
答案 0 :(得分:1)
看起来树已损坏。如果您知道这些提交的结构,您可能会猜到它是什么。希望您可以推断出添加或删除了哪些文件。你的斑点和其他树木也会晃来晃去。如果你真的想要从中恢复并且没有其他克隆的回购,它仍然可能,但将需要一些时间和精力和运气。
希望这有帮助。