Git - 被破坏的对象?

时间:2011-04-20 21:12:08

标签: git repository

我的房子刚刚停电,现在我的git repo(当它发生时我正承诺)正在报告:

user@localhost$ git fsck
fatal: object 192e0282d23863ec80375a77011012ef8cb80f77 is corrupted

由于此错误,我无法提交。拉取和取出似乎仍然可以正常工作。

user@localhost$ git commit
error: unable to find 192e0282d23863ec80375a77011012ef8cb80f77
fatal: 192e0282d23863ec80375a77011012ef8cb80f77 is not a valid object

我尝试重置它,但它没有做任何事情

git reset HEAD 192e0282d23863ec80375a77011012ef8cb80f77
git gc

我该如何解决这个问题?

更新:文件仍然正常,所以我只是克隆了一个新的repo实例并手动移动文件(很高兴这不是唯一的repo实例!)。但是,我保留了破损的仓库,以便我可以尝试在此处发布的修补程序以防下次

2 个答案:

答案 0 :(得分:2)

如果您正在寻找有关如何从中恢复的建议,请参阅此主题:How do you restore a corrupted object in a git repository (for newbies)?

答案 1 :(得分:1)

实际上,您对新克隆所做的事情可能是修复它的推荐方法。如果你不需要,就没有意义做复杂的事情。如果您的工作树中没有正确的版本并且没有其他干净的副本,那么这些方法更有用。

无论如何,我想你想在断电之前重置你的最后一次提交,将损坏的对象移出你的.git /对象,然后再试一次。看起来你的树可能已经被破坏了,这就是为什么那些面向恢复blob的方法没有帮助。