在收到此错误之前,我执行了以下操作:
user@thismachine:~/file/path$ git add *
user@thismachine:~/file/path$ git push
^C
user@thismachine:~/file/path$ git commit -m "my commitmesg"
(我很害怕,因为我忘了在推送之前添加一个提交,所以我按下了cntrl+c‘s。
现在,我从git fsck --full
收到以下错误:
error: inflate: data stream error (incorrect header check)
error: corrupt loose object '5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a'
fatal: loose object 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a (stored in .git/objects/5c/deb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a)
git cat-file -t 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a返回这个对象是一个提交。
经过搜索,我发现如果对象是一个blob而不是一个提交,该如何解决这个问题。
发布于 2015-08-25 09:04:35
http://vincesalvino.blogspot.ca/2013/08/git-empty-files-corrupt-objects-and.html的一个解决方案让我解决了这个问题:
find .git/objects/ -size 0 -exec rm -f {} \;
发布于 2012-09-25 03:37:31
首先,备份您现有的存储库。cp -r
之类的。这样,如果你试图修复你的存储库,搞砸了,你可以恢复。
最简单的尝试就是用一个可以工作的目标文件替换那个损坏的目标文件。如果您有存储库的备份,请使用它。否则,从您的远程存储库执行git clone
以获取一个新副本,并将.git/objects/5c/deb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a
复制到您现有的已损坏的存储库中。看看能不能修好它。
发布于 2012-09-25 21:21:36
感谢您的回复。我在新的克隆存储库中运行了它,并返回它解压了100%的对象,但是它们不在该存储库的.git/ objects /pack中。
所以,相反,我今天早上尝试了一些有效的方法。1.将我的github存储库克隆到一个单独的新目录。2.将本地更改的文件(我最初想要提交的文件)复制到新的克隆存储库,然后将它们推送到github。3. nuked我的旧本地存储库,4.将其再次克隆到与我的旧存储库相同的文件路径中。
https://stackoverflow.com/questions/12571557
复制相似问题