一、前言

目前在公司进行开发,项目都是多人参与的,即开出多个分支如 dev-fun1、dev-fun2等,以方便各自在自己的分支上开发测试,互不影响。

功能开发完毕、测试完毕,再合并到主干分支master

然而问题来了,彼此的分支是开发测试完毕了,但是合并的时候就不一定是很和谐的事情了,比如彼此都改同一处的代码,合并的时候就得考虑如何兼容了。

最后的又问题来,合并的兼容处理不当,如何回退当前分支到合并前的状态呢?

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(1)

二、git命令处理

1.通过 git log 查看本地提交记录,

2.查看想要回退的节点的版本号

3.通过reset命令完成回退

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(2)

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(3)

缺点:当提交过多(日常开发,分支合并的时候,上百commit是常事了),很难通过log查找到自己想要会退到的版本

这不是本文的重点,简单略过。

三、IDEA图形界面处理

1.点击左下角的的Git,打开git操作窗口

2.点击git操作窗口的log,查看git提交信息

3.选择Branch中想进行回退的分支

4.右击当前分支想要回退到的节点,选择 Reset Current Branch to Here

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(4)

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(5)

即可实现回退当前分支到指定的版本,与其他分支无关!

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(6)

选择 Hard 强制回退!

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(7)

即可回退到如上图的位置,即当前分支的某个提交节点!

四、小结

本质是一个reset操作,完全可以使用命令解决,但是要找准切回点,明显没有IDEA提供的图形界面简单。通过命令显示过多的日志,通过肉眼很难觉察到想要提交的点。

五、其他

覆盖远程分支的方法(不能通过merge):

删除远程分支(可以idea操作),分支新推再push上去

idea的git回滚代码(借助IDEA进行git当前分支版本回退)(8)

,