解决办法
通过git reflog
我们可以查看历史提交记录,这里的第二条提交(fbd3ea8)就是我在no branch上的提交。
再通过git checkout -b backup fbd3ea8
,恢复到上次提交的状态,并且为其创建个分支backup,此时就在backup分支了。然后再通过git reset HEAD^
就可以撤销在no branch上的提交,通过git status
可以查看到如下修改(main.cpp就是我在no branch上的改动):
如果你希望在其他分支提交此改动,你可以git checkout master
(这里我希望在master分支提交),然后提交此修改。
结论
- reflog记录了所有在本地仓库的提交记录。
- 修改在没有commit之前,切换到其他分支时,在其他分支也能看到这些修改。