我的房子刚刚停电,现在我的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实例!)。但是,我保留了破损的仓库,以便我可以尝试在此处发布的修补程序以防下次 。
答案 0 :(得分:2)
如果您正在寻找有关如何从中恢复的建议,请参阅此主题:How do you restore a corrupted object in a git repository (for newbies)?
答案 1 :(得分:1)
实际上,您对新克隆所做的事情可能是修复它的推荐方法。如果你不需要,就没有意义做复杂的事情。如果您的工作树中没有正确的版本并且没有其他干净的副本,那么这些方法更有用。
无论如何,我想你想在断电之前重置你的最后一次提交,将损坏的对象移出你的.git /对象,然后再试一次。看起来你的树可能已经被破坏了,这就是为什么那些面向恢复blob的方法没有帮助。