不小心把测试分支合到个人分支怎么办

今天开发的时候,想要切换测试分支来合并个人分支的代码,结果不小心把测试分支合到了个人分支。记录一下怎么回滚。
首先,我按照我理解的在idea的git日志里面直接选中合并之前的提交,右键revert到当前提交。本地确实没有了其他其他人的提交,不过存在一个问题,那就是虽然提交里面没有了测试分支的提交,但点击提交的时候会发现本地有一些不属于个人分支的未提交的修改,这些修改会一直保存在你本地。(可以点击文件然后一个个回滚,但麻烦,不建议)

后面我继续搜解决方案,搜到了一个回滚到上一次提交的命令.

git reset --hard HEAD^

运行了这个命令之后,不但本地的提交没了,本地保存的其他分支提交的文件也没了。

后面研究了一下这条命令,再对比使用idea的回滚,发现问题出在–hard上。在idea点击回滚,默认使用的是mixed模式,这种模式下,idea会把所选节点后面的提交撤销掉,但这种操作会保留所有的修改(只撤销本地commit),非本分支做的修改也会保存在本地。而如果选择hard模式,则会把选中要回滚的提交后面的全部提交以及代码修改都删掉。这样就可以保证代码可以随时回滚到想要的节点。

顺便再说一个,在开发的时候。有时候在测试分支写了代码,忘了切换个人分支再写,可以直接切换个人分支,修改也会保存在本地。如果遇到冲突,合并时需要二选一的优先选本地的,因为本地就是你想要的最新的。

你可能感兴趣的:(intellij,idea,git)