使用intellij处理git rebase时候的冲突
我们在使用git
将远程分支rebase
到本地分支的时候,会经常遇到冲突的情况:
处理这种conflicts的方式,一般都是要手工查看具体都有哪些文件内容有conflicts,然后一个个手工检查和处理这些conflicts。Merge & Resolve Conflicts
的整个过程比较考验耐心,对两边代码冲突的理解。intellij
针对这个过程集成了工具,可以辅助我们完成工作。在上面的conflicts产生后,在intellij
里面打开项目:
如上图所示,点击项目窗口底部的Version Control
,然后可以看到intellij
检测到了git rebase
过程当中所产生的conflicts,然后列出了具体的有冲突的文件。此时点击Resolve
链接,进行具体的resolve conflicts
的过程:
如上图所示,点击Resolve
链接以后,会弹出Conflicts
窗口:
可以看到,我们可以针对每一个有冲突的文件进行具体的处理。针对每一个有冲突的文件,我们有三种选择,分别是:
Accept Yours
Accept Theirs
Merge...
前两种比较简单粗暴,就是直接用rebase
两边有冲突的branch的其中一边去覆盖另一边。第三种Merge...
则是做具体的处理。我们点击Merge...
,就可以进入手工解决冲突的窗口:
如上面窗口所示,左边是本地的代码版本,右边是待合并的分支版本,中间是最终人工检查并合并后的版本。注意到intellij
会把两边版本有冲突的代码部分用红色标记出来。因此我们要做的就是一个个检查这些冲突的地方,然后根据对代码的理解去解决这些冲突。所以工具使用只是辅助,最终还是要落实到人的工作上。等全部冲突都搞定以后,就可以点击窗口右下角的Apply
按钮来保存合好的代码:
以上就是使用intellij
来merge conflict
的一个过程。