(2022.11.29 Tues)
在Git代码执行Pull Request(PR)过程中经常遇到代码冲突的问题。比如一种典型情况是开发者从主分支(main)创建一个分支(feature-a)用于开发新特性。开发完成后提PR进main branch,此时发现已经有开发者从另一个分支提交了PR,比如feature-b,恰好他们修改的代码有代码冲突。
此时feature-a的开发者想要merge代码进main branch需要对代码做修改,方可解决代码冲突。
对于feature-a的开发者,有feature-a和main两个分支,目的是将代码从feature-a融合进main branch。基本思路是先将main分支的内容融合到feature-a分支中,在feature-a分支的冲突文件中做修改,再将修改过的冲突文件PR给main分支,最终实现代码融合。
解决流程如下:
- 在本地terminal执行本地仓库更新
$ git pull
此时本地仓库的main分支是最新的
- 切换到feature-a分支
$ git checkout feature-a
- 将main分支融合进feature-a
$ git merge origin/main
这时会提示出现代码冲突,以及出现代码冲突的脚本。开发者按照提示在出现冲突的代码中对代码进行修改,其中保留feature-b融合进main分支的内容。
- 代码修改之后将修改部分加入暂存区并提交
$ git add .
$ git commit -m 'xxxx'
- 将代码推送到remote repository
$ git push origin feature-a
- 在Git页面/Azure repo页面,提PR,从feature-a到main branch,在approval之后就可以实现融合。
至此,代码冲突问题解决。
网友评论