在Git的PR(Pull Request)提示冲突无法merge合并的解决方案

问题

假设有一个分支A,向master分支提交PR,然后发生无法自动解决的冲突,PR提示不能执行merge合并。

解决方案1

  1. 本地checkout检出并切换到A分支,pull拉取更新到最新代码
  2. 在本地A分支上,merge合并远程分支master
  3. 会提示无法合并,手动解决完冲突提交到A分支
  4. 回到PR,会发现PR已经无冲突
  5. 让有merge权限的人进行merge即可

注意:
优点:此方法适用于无merge权限的人操作
缺点:如果此PR最终被Declined拒绝的话,A分支上会包含PR目标分支的代码(本例中的master分支),造成代码污染。

解决方案2

  1. 本地checkout检出并切换到master分支,pull拉取更新到最新的master代码
  2. 手动执行将远程A分支合并到你本地的master分支,此时本地会看到冲突的文件
  3. 编辑冲突文件,手动解决冲突后,提交merge
  4. 回到PR,可以发现PR已经被merge了

注意:
优点:此方法仅限有merge权限的人操作
缺点:相比方案1,PR的源分支代码干净

建议

若PR大概率一定会被合并,建议使用方案1,更符合正常流程

相关推荐