【IDEA】IDEA上如何解决代码冲突
在master分支作如下改动:
假如现在我们需要将master分支合并到feature-resolve-conflict分支。
1、首先拉到最新的feature-resolve-conflict代码
2、然后右键项目 > 【Git】 > 【Repository】 > 【Merge changes】
3、选择从远程的master合并过来:
4、罗列出冲突的文件列表,没有冲突的文件会自动Commit
6、点击【Merge】进入「Merge Revisions for xxx」窗口解决对应文件的冲突。
点击Merge按钮,然后出现三个代码比对窗口,一个是本地您修改的代码,一个是Romote远程git服务器上的代码,中间的Result是合并之后的结果代码
在这个窗口,有两个东西需要注意:
A、右上角的「改动点」和「冲突点」,这个数字会随着你的解决冲突改变
B、
看见高亮行,我们有5个点需要处理,可以看到5个【x】,或者5个【>>】或【<<】符号。
红色行为冲突行;
绿色行为增加的代码行;
灰色行为删除的代码行;
把所有【>>】和【<<】处理完,则会弹出「All changes have been processed」提示:
7、最后提交代码:右键项目 > 【Git】 > 【Commit Directory】
最后确认无误,push代码吧。
注意:
在对比的设置模式中,可以选择Show Line Numbers来显示行号,还可以显示或隐藏空格的不同。因为有点代码不同紧紧只是空格的不同,通过这样的选择可以忽略代码空格不同的影响
在idea中更新代码的时候,默认会在有代码冲突的时候,将代码暂存到Stash中,这样就算在解决冲突的时候没有处理好,不用担心本地代码的丢失,可以通过如图的方式打开UnStash Changes列表
如图这个页面,可以看到本地未提交的代码被放在了一个栈中存起来了
点击View按钮可以查看当前的Stash里面文件的详情,同样也可以对文件进行比对。如果本地代码在解决冲突的时候丢失了,可以选择stash然后点击Apply Stash进行恢复。