不知道为什么的,机子重启经常发生这种事情.解决办法参考stackoverflow问答
步骤:
- 备份当前git
cp -a .git .git-old
git fsck --full
找出empty file ,删除全部空文件.如果太多了可以用如下命令cd .git find . -type f -empty -delete -print
git status
提示出现fatal: bad object HEAD
rm .git/index
,此时 由于没有index了git reset 会出现下面的提示.Could not parse object ‘HEAD’.
手动查找reflog记录 重新定向HEAD到上一次的提交commit如下
tail -n 2 .git/logs/refs/heads/CURRENT-BRANCH
这时显示你最近的两次提交,使用
git update-ref HEAD commit
和git reset
,commit为最近一次提交动作的版本.这时在
git status
就回到了崩溃前更改后没有add的状态.git add -u
与git commit
一次,重新提交下就OK了.