git提交到了错误的分支,如何解决
明天就要放假了,今天上班有点心不在焉···然后就翻车了,已经commit了好几次才发现自己不在正确的那个分支上。
解决方法:
- git log显示出当前分支上的所有commit
- 复制最近一次正确commit的ID
- git reset commitID (默认是--soft模式,加不加都可以。即不会更改index或working directory 中的内容)
- git checkout本应提交的那个分支名称
- git commit 在当前这个正确的分支上提交刚刚那些走错门的commit
注意:
- 千万要注意第3步使用reset 时要慎用 --hard 选项,他会把index和 working directory也回退到你指定的那次commit。
- 如果你只是做错了一次提交,可以将2 和3 省略为 git reset --soft HEAD^
- 我尚未push到远端。
关于 git reset 命令,参考:https://git-scm.com/docs/git-reset
关于 reset 和 checkout 的详解: https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E7%BD%AE%E6%8F%AD%E5%AF%86
关于类似问题的解决方法,参考:https://www.clearvision-cm.com/blog/what-to-do-when-you-commit-to-the-wrong-git-branch/,https://stackoverflow.com/questions/2941517/how-to-fix-committing-to-the-wrong-git-branch