起因
由于是多人开发,所有人都会像测试分支A合并代码,恰好我们修改了一个类,再他合并代码之后,我再次合并到测试分支A的时候,新增的代码总会添加添加到合并后的类中,合并一次添加一次,并且不提示代码冲突
解决方案
由于idea的图形工具和gerrit的图形工具都无法解决这个问题,最终查询资料发现,可以使用GIT BASH命令行解决。
- 合并代码的时候,不直接提交代码
git merge --no-commit --no-ff your_branch - 查看合并之后的状态
git status -uno,可以看到已经自动合并的代码和有冲突的代码 - 使用vim命令,编辑自动合并的代码和冲突代码
vim fileName - 解决冲突
冲突代码会被<<<<<<< 、=======、>>>>>>>标记,使用vim的编辑方式,处理冲突代码解决完成后保存。 - 修改完的文件,使用git add添加到暂存区
git add 文件名 - 将文件添加到工作区
git commit -m “conflictJava” - 代码推送到远程分支
git push origin 分支名
进一步发现,也可以在Idea的Terminal上,只执行第一部,之后就可以使用IDEA解决冲突,然后和正常的提交代码方式一样,commit然后再push,也可以顺利解决,还不用使用vim等命令行了,合并代码也更方便。希望对大家也能有所帮助。