如何提前验证dev2分支合并至公共dev分支的结果?
如何提前排查dev2分支合并到dev分支的冲突?
要提前查看合并结果并解决冲突,正确的操作是在本地自己的dev2分支上同步远程dev的最新代码,模拟合并/变基过程,具体步骤如下:
- 先切换到本地的dev2分支:
git checkout dev2 - 拉取远程仓库的所有最新分支代码(确保拿到dev分支合并dev1后的最新版本):
git fetch origin - 选择以下两种方式之一处理合并(看团队的提交历史规范):
- 合并方式(保留完整提交历史):
把远程dev的最新代码合并到本地dev2,Git会自动尝试合并,有冲突时会直接提示:
遇到冲突后,打开提示的冲突文件,手动解决代码冲突(Git会用git merge origin/dev<<<<<<<、=======、>>>>>>>标记冲突区域),解决后执行:
这样本地dev2就包含了dev的最新代码,且冲突已解决。git add <冲突文件名> git commit - 变基方式(得到线性提交历史):
如果团队偏好干净的线性提交历史,用变基把dev2的提交放到dev最新代码的后面:
遇到冲突时,先解决冲突,然后执行:git rebase origin/dev
重复这个过程直到变基完成。git add <冲突文件名> git rebase --continue
- 合并方式(保留完整提交历史):
完成上述操作后,本地dev2分支就已经和远程dev的最新代码兼容了,此时推送到远程再发起PR,就不会出现意外冲突。
注意:不要直接在本地合并dev2到dev分支再推送——公共dev分支是多人协作的分支,直接推送会破坏分支的公共历史,不符合PR协作流程,所有冲突都应该在自己的开发分支(dev2)上提前处理。
内容的提问来源于stack exchange,提问作者gkeenley
相关产品推荐
相关产品推荐

