如何将GitHub PR从master分支切换至新分支且保留讨论与提交历史?
解决方案:迁移PR分支并修改现有PR指向
本地仓库操作步骤
- 先同步原仓库与自己fork仓库的最新代码:
git fetch upstream git fetch origin - 基于原仓库的master分支,创建新的功能分支(比如命名为
feature/my-fix):git checkout -b feature/my-fix upstream/master - 提取你在自己fork的master分支上的所有提交,把它们迁移到新分支。先通过日志找到这些提交的哈希值:
然后逐个将这些提交cherry-pick到新分支:git log --oneline origin/master ^upstream/mastergit cherry-pick <提交哈希1> <提交哈希2> ... - 将新分支推送到你的fork仓库:
git push origin feature/my-fix - (可选)恢复自己fork的master分支,使其与原仓库master完全一致,解放该分支:
git checkout master git reset --hard upstream/master git push origin master --force注意:执行强制推送前,务必确认你的fork的master分支仅包含你自己的改动,没有其他人的提交,避免意外覆盖内容。
GitHub上修改现有PR指向
- 打开你已创建的目标PR页面
- 在页面上方的「Compare changes」区域,点击「base repository」旁的「edit」按钮
- 在编辑界面中,保持「head repository」为你的fork仓库,将「compare」分支从
master切换为刚推送的feature/my-fix - 确认修改后,PR会自动更新,所有提交历史、评论和讨论都会完整保留
内容的提问来源于stack exchange,提问作者Davide
相关产品推荐
相关产品推荐

