如何解决GitHub受保护分支的PR合并冲突问题?
解决GitHub受保护分支test→sit合并冲突的标准流程
以下操作完全符合「仅允许test分支向sit推送变更」的规范要求,不需要直接修改受保护分支,也不需要绕过分支保护规则:
- 第一步:拉取远程两个分支的最新代码到本地
执行以下命令更新本地分支版本:# 拉取最新sit分支 git checkout sit && git pull origin sit # 拉取最新test分支 git checkout test && git pull origin test - 第二步:基于最新test分支创建临时冲突修复分支
因为test是受保护分支,无法直接提交修改,需要新建临时分支处理冲突:git checkout -b fix/test-sit-merge-conflict - 第三步:在临时分支合并sit分支,手动解决冲突
执行合并命令:git merge sit
打开所有标记冲突的文件,按照业务优先级确认保留的代码,删除所有<<<<<<<、=======、>>>>>>>冲突标记后,执行提交:
这个步骤的本质是将sit分支的所有独有变更同步到test侧的临时分支,所有修改最终都会先落到test分支,完全符合合入规范git add . git commit -m "fix: resolve test to sit merge conflicts" - 第四步:将临时分支的变更合入test分支
把临时分支推到远程:git push origin fix/test-sit-merge-conflict
向test分支提交该临时分支的PR,走团队正常的test分支PR审核、CI校验流程,通过后合并到远程test分支。 - 第五步:重新提交test到sit的PR
此时远程test分支已经包含sit分支的全部历史,不存在合并冲突,正常走sit分支的PR审核流程合并即可。
注意:解决冲突时优先保留test分支上已经验证完成的功能代码,如涉及业务逻辑取舍,必须拉对应功能的开发负责人确认后再修改,避免覆盖有效功能。
内容的提问来源于stack exchange,提问作者Surabhi shinde
相关产品推荐
相关产品推荐

