解决每次发起PR时Git合并冲突及提交列表异常问题
问题修复方案
你遇到的核心问题是分支创建顺序搞反了——本该从test分出dev,结果反过来从dev建了test,导致Git识别分支关系时出现混乱,每次PR都会把dev的全量提交列出来,还频繁触发冲突。现有分支完全可以修复,不用重新建分支,两种方案供你选:
方案一:Rebase修正分支基线(彻底解决)
这个方法会把dev的提交历史重新基于test的最新节点,让分支关系回归正常,后续PR就不会再出问题:
- 拉取最新代码到本地:
git checkout test git pull git checkout dev git pull
- 将
dev基于test做变基:
git rebase test
如果中途出现冲突,手动修改冲突文件后,执行git add .,再用git rebase --continue继续,直到变基完成。
3. 强制推送修改后的dev到远程(注意:如果有其他同事在dev上开发,一定要提前沟通,强制推送会覆盖远程分支历史):
git push origin dev --force
之后再从dev向test发PR,就只会显示dev在变基后的新提交,冲突也会大幅减少。后续开发记得每次在dev上干活前,先rebase test同步最新代码,能从根源避免冲突。
方案二:合并时用Squash(临时解决,适合不关注提交历史的场景)
如果不想修改分支历史,可以用压缩合并的方式,把dev的所有提交打包成一个提交合并到test:
git checkout test git merge --squash dev git commit -m "合并dev分支的所有修改" git push
但这个方法只是临时掩盖问题,下次从dev发PR时,还是会出现全量提交记录,所以更推荐方案一。
内容的提问来源于stack exchange,提问作者tenticon
相关产品推荐
相关产品推荐

