Linux Git裸存储库失败。缺少必要的对象。Can';t提交/推送
大约一个月前,我创建了裸git存储库。 上个月,我一直在通过SSH将源代码更改从eclipse提交到该存储库 问题发生在今天,当时我试图从eclipse提交和推送更新。这是我的全部错误:Linux Git裸存储库失败。缺少必要的对象。Can';t提交/推送,linux,eclipse,git,git-bare,Linux,Eclipse,Git,Git Bare,大约一个月前,我创建了裸git存储库。 上个月,我一直在通过SSH将源代码更改从eclipse提交到该存储库 问题发生在今天,当时我试图从eclipse提交和推送更新。这是我的全部错误: Repository ssh://dany@192.168.0.18:22/home/dany/git/SVP2/ missing necessary objects error: object file ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0 i
Repository ssh://dany@192.168.0.18:22/home/dany/git/SVP2/
missing necessary objects
error: object file ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0 is empty
error: object file ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0 is empty
fatal: loose object 60916b83370c1535a4be9924e71e9954c01e82e0 (stored in ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0) is corrupt
error: object file ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0 is empty
error: object file ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0 is empty
fatal: loose object 60916b83370c1535a4be9924e71e9954c01e82e0 (stored in ./objects/60/916b83370c1535a4be9924e71e9954c01e82e0) is corrupt
我可以假设出了什么问题,但我不知道如何解决它
我认为这可能与linux服务器上的错误有关,该存储库位于:
Read-only file system
我不知道为什么以及何时我的系统切换到只读模式
我有备份:
- eclipse项目中我的本地机器中的源代码,它也是本地git存储库
- 此git存储库的git捆绑包文件
dany@192.168.0.18:~/git/SVP2$ git fsck --full
error: object file ./objects/06/b08928836077489d0ede51a0af42c7807b1943 is empty
error: object file ./objects/06/b08928836077489d0ede51a0af42c7807b1943 is empty
fatal: loose object 06b08928836077489d0ede51a0af42c7807b1943 (stored in ./objects/06/b08928836077489d0ede51a0af42c7807b1943) is corrupt
korbeldaniel@192.168.0.18:~/git/SVP2$
dany@dany1l:~/git/SVP2$ git fsck --full
Checking object directories: 100% (256/256), done.
dany@dany1l:~/git/SVP2$
在本地工作存储库上
dany@192.168.0.18:~/git/SVP2$ git fsck --full
error: object file ./objects/06/b08928836077489d0ede51a0af42c7807b1943 is empty
error: object file ./objects/06/b08928836077489d0ede51a0af42c7807b1943 is empty
fatal: loose object 06b08928836077489d0ede51a0af42c7807b1943 (stored in ./objects/06/b08928836077489d0ede51a0af42c7807b1943) is corrupt
korbeldaniel@192.168.0.18:~/git/SVP2$
dany@dany1l:~/git/SVP2$ git fsck --full
Checking object directories: 100% (256/256), done.
dany@dany1l:~/git/SVP2$
正如您所看到的,它都是关于同一个对象的。
验证存储库是否处于“良好”状态: 它将验证存储库中的所有文件是否处于“良好”状态。
如果任何文件出现错误,它将显示给定的哈希值不好,这意味着如果文件在列表中,并且不是悬挂的
状态,则校验和(SHA1)与内容不匹配
在这种情况下,文件已损坏
如果文件没有损坏
如果要验证问题不在当前分支中,请签出上一个工作母版,从中创建新分支,然后尝试推送新分支。
如果推送工作正常,那么您已经验证了问题出在您的某个存储库文件中。我在zip存档中对git存储库进行了正常的目录和文件备份,用于恢复,修复了错误
~/git重命名为~/git\u旧\u已损坏
将git文件夹和文件解压缩到~/git
提交并推送到远程存储库(之前已损坏的存储库)
此提交一次推送了我以前的所有提交
现在它又恢复正常了。好的。文件已损坏。我能做点什么吗?我在命令的post结果中添加了:git fsck--full
您需要确定要删除或恢复哪个文件<代码>git cat文件-p06B08928836077489d0ede51a0af42c7807b1943
或:git show 06b08928836077489d0ede51a0af42c7807b1943
git cat文件-p06B08928836077489d0ede51a0af42c7807b1943的输出是什么?