Git -损坏的对象



我的房子刚刚停电了,现在我的git仓库(当它发生时我正在提交)报告:

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

如何解决这个问题?

UPDATE:文件仍然很好,所以我只是克隆了一个新的repo实例并手动移动文件(很高兴这不是唯一的repo实例!)。但是,我保留了损坏的repo,以便我可以尝试修复张贴在这里,以防下次有

如果你正在寻找如何从这个恢复的建议,看看这个线程:如何在git存储库中恢复损坏的对象(对于新手)?

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

无论如何,我认为你想要重置到停电前的最后一次提交,将损坏的对象从.git/objects中移出,然后再试一次。看起来您的树可能已经损坏了,这就是为什么用于恢复blobs的指南没有帮助的原因。

最新更新