背景:

项目open-api 有五个分支如下图所示,beta是测试分支(本地不能直接提交到beta),develop是开发分支,master是生产分支,user-api(为开发某个功能从master拉的特性分支),trade-optimize(为开发某个功能从master拉的特性分支), user-api在trade-optimize之后拉取的,拉取user-api时trade-optimize还正在开发没有上线,此时要求user-api要提前上线.(解决代码冲突时user-api已上线(此分支上线时没有冲突并且代码已合并到了beta及develop),若trade-optimize上线合并master,develop,beta都会出现冲突)

造成代码冲突的原因:这两个分支开发时都在maven中引入了dubbo 服务jar包,并都修改了一些配置文件并且两个分支修改的是同一个文件的同一行.

IDEA解决不同git分支冲突

解决冲突(本质就是解决与master冲突):

第一步:当前所在分支trade-optmize,如图所示点击pull

IDEA解决不同git分支冲突

第二步:点开的时候是勾选的origin/trade-optimize分支,切换到origin/master分支

IDEA解决不同git分支冲突
IDEA解决不同git分支冲突

第三步:此图是盗的但都是一样的,所以此次拼想象,我只能口头描述

IDEA解决不同git分支冲突

点击右下角的pull,会出现一个弹框叫你解决冲突,右上角有三个按钮,根据自己的情况合并代码,Accept Yours:保留你自己的代码, Accept Theirs:保留别人的,merge合并(此处还是人工把需要的代码复制粘贴到结果集result里面比较保险);

我这儿遇到的就比较简单只需要保留我自己的代码就可以了;

第三步:

将修改后的代码commit 然后 push 到远程仓库;这样再将trade-optimize合并到develop,beta上就不会出现冲突了;

但是我这儿出现了一个问题,就是合并冲突后commit时idea显示没有修改过的文件(一般情况下不会,直接在idea图像化操作就可以了),此时就只能动用git命令了.

先切换到工程的目录下

IDEA解决不同git分支冲突

右键打开git bash,执行git status命令,此处显示没有我需要添加版本控制的文件,所以我就直接执行: git commit –m ‘解决冲突’ 将代码提交到本地仓库,然后再idea push到远程仓库就OK了(此处我之所以不直接选用git push 是因为命令行不会显示你要push的文件,所以还是图像化操作比较好)

IDEA解决不同git分支冲突


相关文章: