平时我们在合作开发中,难免会遇到很多代码合并引起的冲突,今天我们就来解决一下代码合并引起的冲突问题。
场景
开发人员A和B
1、A拉取dev分支: git pull origin dev
2、B拉取dev分支: git pull origin dev
3、A在分支上开发功能上传到远程代码库,merge到远程dev分支上;
- A创建新的分支feature/mf: git checkout -b feature/mf;
- A开发完功能将分支上传到远程:git add . / git commit -m / git push
- 远程合并代码
4、B在分支上开发功能上床到远程代码库
- B创建新的分支feature/alei:git chcekout -b feature/alei
- B开发完功能后首先将dev分支进行更新,(因为dev分支已经被A更新过)
- 切换到dev分支 : git checkout dev
- 更新dev分支 :git pull origin dev
- 切换到feature/alei :git merge dev
- 若此时代码有冲突,看仔细后手动解决冲突(查看冲突命令:git diff)
- 将分支上传到远程:git add . / git commit -m / git push
- 远程代码合并
代码冲突的解决方法
- 如果发生冲突,则针对冲突文件,通常会包含三个选项:保留当前代码、保留更新代码、保留双方代码。
1、保留当前代码为以当前分支为准,如果当前分支为dev,合并分支为feature/mf,如果选择了保留当前代码,则以当前分支dev为准,这种情况下,由于被合并的分支feature/mf的代码一般是你本次修改的代码如果存在冲突并选择了保留当前代码,则你的修改会在当前dev分支覆盖,不会体现在当前dev分支中。
2、保留更新代码以你的feature/mf分支为准,feature/mf会覆盖掉dev分支的代码,这里需要保证确实是直接使用你的feature/mf分支惊醒修改的即可,否则可能会把别人的代码覆盖掉。
3、保留双方代码,会保留当前dev分支的代码与你要合并的feature/mf分支的代码,这时就要仔细看一下是否会引起报错,因为合作开发最大的问题就是风格不同,可能会造成代码的报错。
以上这些是我自己本人遇到的问题进行的一些总结,仅供参考,欢迎补充!