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

撤销GitHub Pull Request后分支无差异,如何重新发起PR?

重新发起被撤销的Pull Request的解决方案

嘿,我明白你现在的困境——撤销PR后两个分支没差异了,没法重新提PR对吧?别担心,咱们一步步来解决:

核心原因

你之前撤销PR的操作,本质上是在release/13.0.0分支上创建了一个反向提交,把合并进来的prod_bug_fix变更全部抵消了。现在两个分支代码一致,自然没法发起PR。咱们要做的就是让prod_bug_fix重新恢复之前的变更,和目标分支产生差异。

方法一:撤销“撤销操作”(推荐,不改写历史)

这种方法更安全,不会修改已有的提交历史,适合多人协作的场景:

  1. 先切换到你的prod_bug_fix分支:
    git checkout prod_bug_fix
    
  2. 找到之前用来撤销PR的那个提交哈希值。你可以通过日志查看:
    git log --oneline release/13.0.0
    
    找那条开头是Revert "Merge pull request #XXX from .../prod_bug_fix"的记录,复制它的哈希值(比如abc123)。
  3. 对这个撤销提交执行反向操作,恢复原来的变更:
    git revert abc123
    
  4. 把修改推送到远程分支:
    git push origin prod_bug_fix
    

方法二:重置分支到合并前状态(适合单人开发)

如果只有你自己在prod_bug_fix分支上工作,也可以直接重置分支到合并前的状态:

  1. 切换到prod_bug_fix分支:
    git checkout prod_bug_fix
    
  2. 找到合并到release/13.0.0之前,prod_bug_fix分支的最后一个提交哈希(比如def456),可以通过git log查看。
  3. 重置分支到该提交:
    git reset --hard def456
    
  4. 强制推送到远程(注意:这会覆盖远程分支的历史,多人协作时谨慎使用):
    git push --force origin prod_bug_fix
    

最后一步:重新发起PR

完成上面的操作后,prod_bug_fix和release/13.0.0分支就会重新产生差异。你直接去GitHub上选择prod_bug_fix作为源分支,release/13.0.0作为目标分支,就能正常发起新的Pull Request了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:03:17