这可能很难相信,但是当我的电源关闭时,我正在执行提交。幸运的是,我从未推动过提交。我刚刚恢复功能,当我尝试在目录中执行git log
时出现错误:
fatal: bad default revision 'HEAD'
这是一个私人存储库,我已经工作了一个多星期,并且提交了大约5到10次。
我看了SO并找到Git tracking entire home directory. Get error - fatal: bad default revision 'HEAD',这没有任何帮助,因为我已经运行了git init
!
我刚刚运行ls -la
以查看我的.gitignore
文件是否仍然存在,但是看到它已经消失了。我该怎么办?我不想失去我以前的提交历史。
我对Git的了解有限。任何帮助将不胜感激。
修改1:
我只有一个分支(主),当我尝试时:git symbolic-ref HEAD refs/heads/master
它没有改变任何东西。
我还看了git log and show on a bare repo并尝试了:
git log --graph --oneline --date-order --decorate --color --all
给了我:
095cdaa (origin/master) added profile layout
dd9ddec fixed nav bar
4e99ca7 remove unecessary files, add resources, start navigation drawer
8b09709 fix README
c64c422 initial commit
然后我尝试了git branch master 095cdaa...
,这给了我错误:
fatal: Failed to resolve HEAD as a valid ref.
编辑2:
作为对这个问题的快速解决方案,我做了@PaulGriffiths建议的事情:
rm -f ./.git/index.lock
答案 0 :(得分:0)
在官方的git书中查看:Git internals - Maintenance and Data Recovey。
如果您的reflog仍然完好无损:
git reflog
将显示HEAD
提交的最后状态列表。尝试在其中一个列出的提交上运行git checkout <hash>
,然后git branch <newBranchName>
。
答案 1 :(得分:0)
根据 @PaulGriffiths 的建议,我通过以下方式解决了这个问题:
rm -f ./.git/index.lock
。这个解决方案只有用,因为我有一个远程存储库,我已经做了很多提交并推送它们。如果我从未推动过这些提交,那么这将不起作用。