大约一个月前,我创建了裸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 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包文件
它们可以用来将存储库恢复到工作状态吗?
请帮忙。我很害怕。
我对吉特很陌生。我没有任何队员要这个。请帮忙。
--------------编辑---------------------
感谢:@codeWizard
在远程裸存储库上
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$

最佳答案

正如你所看到的,它是关于同一个物体的。
验证存储库是否处于“良好”状态:

git fsck --full

它将验证存储库中的所有文件是否处于“良好”状态。
如果任何文件出错,它将显示给定的哈希值不好,这意味着如果该文件在列表中,并且不是dangling状态,则校验和(SHA1)与内容不匹配。
如果是这种情况,则文件已损坏。
如果文件未损坏
如果要验证问题不在当前分支中,请签出上一个工作主控形状,创建新分支并尝试推送新分支。
如果推送正在工作,则您已验证问题是否在某个存储库文件中。

关于linux - Git Bare存储库失败。缺少必要的对象。无法提交/推送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31183299/

10-14 18:40
查看更多