如何创建不包含首个未合并PR提交记录的第二个Pull Request?
解决第二个PR包含第一个PR提交记录的方案
方法1:基于最新master重建干净分支
- 切换到master分支并拉取最新代码:
git checkout master git pull origin master - 创建全新分支:
git checkout -b new-second-branch - 把第二个PR的专属提交迁移过来:
- 用
git log找到第二个分支里仅属于本次的提交哈希,执行:git cherry-pick <专属提交哈希> - 若修改不多,也可直接复制修改后的文件到新分支,再提交:
git add . git commit -m "本次新增提交的描述"
- 用
- 推送新分支到远程,用它重新提交PR,旧分支可自行删除。
方法2:对现有分支执行变基
- 切换到第二个分支:
git checkout your-second-branch - 拉取远程master的最新代码:
git fetch origin master - 基于最新master变基,让分支提交脱离第一个PR的历史:
git rebase origin/master - 若出现冲突,手动解决后执行
git rebase --continue,直到变基完成。 - 强制推送更新后的分支到远程(仅当分支只有你在维护时这么做):
git push origin your-second-branch --force - 刷新PR页面,提交记录就会只剩本次新增的内容。
方法3:交互式变基移除冗余提交
- 切换到第二个分支后,用
git log查看提交历史,找到第一个PR的提交哈希。 - 执行交互式变基,指定第一个PR提交的父提交哈希(或用
HEAD~n,n是包含冗余提交的数量):git rebase -i <第一个PR提交的父哈希> - 在弹出的编辑器中,把第一个PR对应的提交行前的
pick改为drop,保存退出。 - 解决可能的冲突后,执行
git rebase --continue完成变基。 - 强制推送分支到远程:
git push origin your-second-branch --force
额外提示
- 若第一个PR即将合并,可等它合并到master后,切换到第二个分支执行
git merge master,再推送更新,PR会自动过滤掉重复的提交记录。 - 强制推送前务必确认分支只有你个人使用,避免覆盖他人的修改。
内容的提问来源于stack exchange,提问作者Deeksha
相关产品推荐
相关产品推荐

