Linux Magrathea 3.6.11+#474 PreprPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU / Linux 在覆盆子上。作为GIT Server使用。存储库没有分支。 我是git的初学者,但我喜欢它!
我能够使用fsck
恢复一些数据,并在Lost-Found
中找到了git对象。在阅读了一些主题之后,我做了以下几点:
git init
.git/objects
git fsck --full
没有错误。
但如果我尝试git log
,我会
致命:错误的默认修订'HEAD'
下一步是什么?如何重新连接上一个状态?
如果我尝试使用:git clone git@magrathea:/gitroot/chorus
克隆存储库。我回来说存储库是空的。
我很抱歉,但我是Git的简单用户。我对git的内部组织一无所知。
请善待并提供一些提示。
答案 0 :(得分:2)
当HEAD
引用不存在的内容时,您会收到该消息。执行git init
时,HEAD
通常附加到master
分支 - 您尚未对其进行任何修订。因此:“错误的默认修订版”在这里意味着“ no ”默认修订版。
所以看看你从中恢复对象的仓库中的.git/logs/refs/heads/master
,你想要第二个字(awk {print $2;exit}
文件)。在你正在建造的回购中,
git update-ref -m "reconstructing the repo" refs/heads/master
that_sha
现在,我记得,git fsck
追逐裁判,而你还没有,所以它保持沉默可能并不意味着什么。祝你好运。
(编辑:git branch master
that_sha
也可能会有效...)