如果我的术语错误,请道歉,我对Git没有经验。我有一个来自github仓库的本地仓库,在停电后,现在正在显示
HEAD as 0000000000000000000000000000000000000000
并标记为要添加的每个文件。 TortoiseGit显示FETCH_HEAD
是我唯一的本地分支,尽管我有几个分支和主分支。远程分支似乎记得发生了什么 - 它有原始的远程URL和一些最近的分支。
我真的很紧张,只是因为我有本地(非推动)的变化而无法完成任何事情。我可以查一下这个问题的具体术语吗?
我在Windows上使用tortoise-git。我确实安装了git命令行,但除了基础知识之外我什么都不知道。
我应该补充一下,我的未更改的更改是最小的 - 实际上是2个文件 - 因为我刚刚在停电之前做了一次推送。因此,如果这比尝试恢复本地提交更容易,那么恢复与远程仓库同步就好了。
当我运行git fsck
时,我得到:
错误:HEAD错误无效:无法解压缩 071bf20e651e1ac9ea91821ee947786138f79156标题错误:inflateEnd: 流一致性错误(无消息)致命:松散的对象 071bf20e651e1ac9ea91821ee947786138f79156(存储在.git / obj中) ects / 07 / 1bf20e651e1ac9ea91821ee947786138f79156)已损坏
当我运行git reflog
时,我得到:
致命:错误的默认修订'HEAD'
当我运行git reset --hard
时,它失败了:
致命:无法将“HEAD”解析为有效的参考号。
答案 0 :(得分:1)
你的未提交的提交很可能仍然存在,只是分支引用已经丢失。
恢复它们的最佳方法如下:
git fsck
git checkout -b laststate
git reset --hard <sha1>
所以看到你的编辑你的回购真的搞砸了。
HEAD无效参考,现在您的最后机会是将其设置为origin/master
git reset --hard origin/master
应该解决问题并将你的HEAD设置回来。