这可能令人难以置信,但当我断电时,我正在执行提交。幸运的是,我从未 push 提交。我刚恢复供电,当我尝试在目录中执行 git log
时出现错误:
fatal: bad default revision 'HEAD'
这是一个私有(private)存储库,我已经使用了一个多星期,并进行了大约 5 到 10 次提交。
我查看了 SO 并找到了 Git tracking entire home directory. Get error - fatal: bad default revision 'HEAD' ,这没有任何帮助,因为我已经运行了 git init
!
我刚刚运行了 ls -la
来查看我的 .gitignore
文件是否还在,但是你瞧,它不见了。我应该怎么办?我不想失去我以前的提交历史。
我对 Git 的了解有限。任何帮助将不胜感激。
编辑 1:
我只有一个分支(master),当我尝试: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
最佳答案
看看:Git internals - Maintenance and Data Recovey在官方的 git 书中。
如果您的 reflog 仍然完好无损:
git reflog
将显示 HEAD
的最后状态列表犯罪。尝试运行 git checkout <hash>
在列出的提交之一上,然后 git branch <newBranchName>
.
关于Git 提交在完成之前停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705089/