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

回退develop分支后,如何重新创建已合并过的Pull Request?

Git回退后重新创建PR的解决方案

你的cherry-pick方案完全可行

这个思路没问题,cherry-pick确实会生成全新的提交(SHA值改变),能让Git重新识别分支差异,具体操作步骤如下:

  • 从回退后的develop分支(提交56e05fce)新建一个临时分支,用来中转提交:
    git checkout 56e05fce
    git checkout -b temp-rebase-prs
    
  • 逐个cherry-pick每个原feature分支的提交:
    git cherry-pick <原feature分支的提交SHA>
    
    如果遇到冲突,解决冲突后执行git cherry-pick --continue即可。
  • 每完成一个cherry-pick,基于当前临时分支的状态新建对应feature分支的"复刻版":
    git checkout -b feature/new-xxx
    git push origin feature/new-xxx
    
  • 用这些新分支向develop发起PR,此时Git会正常检测到文件差异,不会再出现之前的问题。

另一种更高效的方案:重置feature分支并变基

如果不想逐个cherry-pick,也可以直接重置原feature分支到合并前的状态,再变基到当前develop:

  • 找到每个feature分支在合并到develop之前的最后一个提交SHA(可以通过git reflog或Git平台的提交历史找到)
  • 重置该feature分支到这个提交:
    git checkout feature/xxx
    git reset --hard <合并前的提交SHA>
    
  • 将分支变基到当前的develop分支:
    git rebase develop
    
    解决可能出现的冲突后,执行git rebase --continue完成变基。
  • 强制推送到远程分支(注意:如果有其他同事在这个分支工作,必须提前沟通):
    git push -f origin feature/xxx
    
  • 之后重新发起PR,分支与develop的差异就能正常显示了。

关键注意事项

  • 操作前务必给所有涉及的分支创建备份,比如git branch feature/xxx-backup,防止操作失误丢失提交
  • 强制推送分支前,确认没有其他协作者在该分支上进行开发,避免覆盖他人的修改
  • 原PR的评论、审批记录无法自动迁移到新PR,需要手动同步(如果有需要的话)

内容的提问来源于stack exchange,提问作者123onetwothree

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:36:59