You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将master分支的改动迁移至dev分支并重新提交Pull Request?

把Master分支的改动迁移到Dev分支并重新提交PR

别担心,这种操作失误太常见了,按下面的步骤一步步来就能搞定:

第一步:确保本地仓库与原仓库同步

先把本地代码更新到最新状态,避免后续迁移时踩冲突坑:

  • 切换到本地master分支:
    git checkout master
    
  • 拉取原仓库(通常命名为upstream)的最新master代码:
    git pull upstream master
    
  • 切换到本地dev分支:
    git checkout dev
    
  • 同样拉取原仓库的最新dev代码:
    git pull upstream dev
    

第二步:迁移改动到Dev分支

根据你在master上的提交数量,分两种场景处理:

场景1:Master上只有1个提交

用cherry-pick直接复制这个提交到dev最省心:

  • 先找要迁移的提交哈希值(用git log查看,复制那串7位或更长的字符)
  • 确保当前在dev分支,执行:
    git cherry-pick <你的提交哈希值>
    
  • 如果碰到冲突,手动修改冲突文件后执行:
    git add <冲突文件名>
    git cherry-pick --continue
    
    要是不想继续了,用git cherry-pick --abort回退就行。

场景2:Master上有多个连续提交

如果是一串连续的提交,用rebase迁移更高效:

  • 先找到这串提交起始提交的前一个哈希值(比如你有3个提交,找第一个提交之前的那个commit hash,git log里能看到)
  • 执行rebase命令,把master上从这个起始点之后的所有提交迁移到dev分支:
    git rebase --onto dev <起始提交的前一个哈希值> master
    
  • 遇到冲突的话,解决后执行:
    git add <冲突文件名>
    git rebase --continue
    
    回退用git rebase --abort。
  • 完成rebase后,切换回dev分支,同步rebase后的内容:
    git checkout dev
    git reset --hard master
    

第三步:推送Dev分支到你的Fork仓库

把本地更新后的dev分支推送到自己的fork仓库:

git push origin dev

如果之前你的dev分支已经推过,可能需要强制推送(注意:只有你自己在这个分支工作时才用,别覆盖别人的改动):

git push origin dev --force

第四步:重新提交PR并关闭旧PR

  • 打开GitHub,进入你的fork仓库,切换到dev分支,点击"Compare & pull request"按钮,选择原仓库的dev分支作为目标分支,提交新的PR。
  • 找到之前针对master分支的旧PR,在页面点击"Close pull request"按钮;或者在新PR的描述里加上closes #<旧PR编号>,这样合并新PR时会自动关闭旧PR。

内容的提问来源于stack exchange,提问作者kikik kakik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:39:18