如何解决新提交PR包含已有PR关联提交的问题
问题核心原因
你从尚未合入master的branch_A分支创建branch_B,branch_B的提交历史天然包含branch_A所有未合入master的变更,因此向master提PR时,系统对比master和branch_B的差异会自动纳入这部分历史变更,属于Git分支管理的正常逻辑。
可选解决方案
根据你的实际需求选择对应操作即可:
方案1:保留branch_B独立性,单独提PR(适合本次变更和branch_A无关的场景)
操作步骤:
- 切换到本地master分支,拉取最新远端代码:
git checkout master git pull origin master
- 基于最新master重建分支,摘取你在branch_B上的新提交:
git checkout -b temp_branch git cherry-pick <branch_B上新增提交的commit哈希值>
- 强制推送覆盖远端的branch_B:
git push -f origin temp_branch:branch_B
操作完成后刷新GitHub上的PR,就只会显示本次新提交的内容,不会携带branch_A的变更。
方案2:合并到原有branch_A PR(适合本次变更属于branch_A需求范畴的场景)
如果你调整原有计划,认为本次变更属于branch_A的需求范围,可以直接将提交同步到branch_A:
git checkout branch_A git cherry-pick <branch_B上新增提交的commit哈希值> git push origin branch_A
推送后原有branch_A的PR会自动更新包含本次提交,不需要单独提新PR,操作完成后可删除本地和远端的branch_B。
方案3:保留当前PR原样(适合branch_A的PR即将合入master的场景)
如果branch_A的PR已经通过审核,很快就会合入master,你可以等branch_A合入后再刷新branch_B的PR,系统会自动识别到branch_A的变更已经合并到master,PR差异会自动过滤掉这部分内容,仅保留本次新提交,无需额外操作。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

