在no branch上commmit后,再切换到其他分支,找不到no branch分支的修改怎么办?

时间:2024-04-27 21:19:25

解决办法

通过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分支提交),然后提交此修改。

结论

  1. reflog记录了所有在本地仓库的提交记录。
  2. 修改在没有commit之前,切换到其他分支时,在其他分支也能看到这些修改。