如何用我的文件创建的新Git对象替换损坏的Git对象,这很好

时间:2010-02-02 11:59:29

标签: git

我的应用程序,在我的文件系统中,工作得很好。所有测试都通过了。

我是唯一的开发人员,使用Git主要使用Heroku以及备份。

由于腐败的物体,Git已停止工作。

我收到的错误如下:

steven-nobles-imac-200:drominay steven$ git push heroku master
error: inflate: data stream error (invalid distance too far back)
fatal: object 990ad2766afa2e2002eea265225ad160e73eacd2 is corrupted
error: pack-objects died with strange error

(以及许多其他错误,都引用了损坏的对象。)

如何让Git抛弃损坏的对象并将其替换为从我的应用程序的工作副本构建的新对象?

Git init没有解决问题。

谢谢!

1 个答案:

答案 0 :(得分:10)

您需要使用git-fsck。手册有details,但要点是git-fsck将确保存储库内部一致并列出缺少的对象,然后您可以使用git hash-object -w <correct-file>将文件放入存储库。如果给hash-object的文件确实是腐败的文件,那么你的存储库现在又完成了:)。

更新为添加:Git repair执行相同的操作,但是自动执行:)。