抱歉,如果我的术语是错误的,我没有那么有经验的Git。我有一个从github回购的本地回购,在停电后,它现在显示
HEAD as 0000000000000000000000000000000000000000
和标记为add的每一个文件。TortoiseGit显示FETCH_HEAD
是我唯一的本地分支,尽管我有几个分支,也有主人。远程分支似乎还记得发生了什么-它有一个远程URL的起源和最近的几个分支。
我真的很紧张,只要尝试做任何事情,以防它破坏了一切,因为我有局部的(非推动的)变化。我能查到这个问题有什么具体的术语吗?
我在Windows上用乌龟盖特。我确实安装了git命令行,但除了基本知识之外,我什么都不知道。
我要补充的是,我的未推送更改是最小的--字面上是2个文件--就像我在中断之前做的那样。因此,如果与远程回购同步比尝试恢复本地提交更容易,那么恢复与远程回购同步就很好了。
当我运行git fsck
时,我得到:
错误:无法解压缩071bf20e651e1ac91821ee947786138f79156标头错误: inflateEnd:流一致性错误(无消息)致命:松散对象071bf20e65e651e91821ee947786138f79156(存储在. .git/obj ects/07/1bf20e651e1ac9ea91821ee947786138f79156)中)损坏。
当我运行git reflog
时,我得到:
致命:坏的默认修订“头”
当我运行git reset --hard
时,它失败了:
致命:未能将“HEAD”解析为有效的引用。
发布于 2013-03-04 01:38:09
很可能您的未推提交仍然存在,只是分支引用丢失了。
恢复它们的最佳方法如下:
git fsck
git checkout -b laststate
git reset --hard <sha1>
所以看到你的编辑你的回购真的很糟糕。
头部无效,现在您最后的机会是将其设置为origin/master
。
git reset --hard origin/master
应该能解决问题并把头放回原处。
https://stackoverflow.com/questions/15198281
复制