在GitHub中,如何让基于次级分支的分支PR不包含前置分支提交?
解决分支PR包含前置分支提交的问题
方案1:调整PR的目标分支
直接把branch_2的PR目标分支从main改成branch_1,这样PR会对比branch_1和branch_2的差异,只会显示branch_2独有的提交,完全匹配你的需求:
- 代码依然基于
branch_1的改动 - PR里不会混入
branch_1的提交 - 等
branch_1合并到main后,再把branch_2的PR目标改回main,或者直接合并branch_2到main即可
方案2:变基分支到main(适合文件无重叠场景)
因为两个分支修改的文件完全不重叠,可通过rebase --onto把branch_2的独立提交移到main顶端,同时手动保留branch_1的改动:
- 切换到
branch_2:git checkout branch_2 - 将
branch_2中在branch_1之后的提交移到main上:git rebase --onto main branch_1 branch_2 - 此时
branch_2代码是main + 自身提交,缺少branch_1的改动,因文件无重叠,直接cherry-pickbranch_1的改动:git cherry-pick branch_1 - 强制推送到远程分支:
git push -f origin branch_2 - 刷新PR后,只会显示
branch_2的提交,且代码包含branch_1的改动
注意:强制推送会覆盖远程
branch_2,如果有其他协作者在该分支工作,需提前沟通。
后续优化
如果后续branch_1合并到main,可再将branch_2变基到main确保分支最新:git rebase main branch_2
内容的提问来源于stack exchange,提问作者João Santos
相关产品推荐
相关产品推荐

