1.git reflog ,找到commit的id
2.git checkout commitId ,将head指针指向了该commit,代码已经恢复
但是此时产生了指针分离,master 落后于head 指针,解决方法:
3.git branch 临时分支名 commitId ,创建一个临时分支,为头指针下的提交而创建的
4.git merge 临时分支名 ,我们可以看到 head 指向了master 和 临时分支名
5.git branch -d 临时分支名 ,删除临时分支
这时候我们就可以正常的git pull 和git push 了
(一只菜狗的总结,表述可能不是很清晰,对git的理解也不太到位)