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

Azure DevOps中撤销PR后,如何重新合并原变更至main分支?

解决Azure Repos中撤销PR后重新合并变更的问题

问题根源

当你通过revert操作撤销了dev到main的PR合并后,main分支的历史中已经包含了“抵消原变更”的提交。Git会判定dev分支的原变更已经是main的历史子集,因此新PR不会识别这些变更为待合并内容。

可行解决方案

方案1:撤销之前的Revert提交

这是最直接的恢复方式,适用于revert提交尚未被大量同步的场景:

  1. 在Azure Repos或本地Git中找到之前执行revert生成的提交ID
  2. 切换到本地main分支并拉取最新代码:
    git checkout main
    git pull
    
  3. 执行revert命令撤销之前的撤销操作:
    git revert <revert提交的ID>
    
  4. 将新提交推送到远程main分支,之后可以直接将dev分支的变更同步到main,或重新发起PR(此时原变更会被正确识别)

方案2:在dev分支重新生成等价变更

如果main分支的revert提交已经被团队成员广泛拉取,为避免改写共享历史,可采用此方法:

  1. 基于最新的main分支创建新的开发分支:
    git checkout main
    git pull
    git checkout -b dev-restore-changes
    
  2. 重新实现原变更内容:
    • 若原变更来自单个提交,可使用cherry-pick(需处理可能的冲突):
      git cherry-pick <原变更的提交ID>
      
    • 若为多个提交,可手动复制修改内容,或通过rebase将原变更移植到新分支
  3. 提交并推送新分支到远程,基于该分支创建PR到main,此时PR会正常显示待合并的变更

方案3:重新打开原PR(限原PR未删除)

如果原PR仍存在于Azure Repos中:

  1. 在Azure Repos的PR列表中找到原PR
  2. 点击“重新打开”按钮
  3. 解决分支间的冲突后,重新发起审批合并流程

关键注意事项

  • 操作前必须拉取远程最新代码,确保本地分支与远程一致
  • 对main分支操作时,优先使用git revert而非git reset,避免改写共享分支的历史
  • 团队协作场景下,操作前需同步所有相关成员,避免引发代码冲突或混乱

内容的提问来源于stack exchange,提问作者Maheswara Reddy Yarramreddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:10:31