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

Git中回退已撤销的合并操作问题求助

解决误合并撤销后hotfix同步及功能回退问题

问题根源

你通过Azure DevOps「Revert PR」生成的反向提交,在合并main到develop时会被同步过去,抵消了develop原本的功能变更;同时main上的这个反向提交会让后续dev→main的PR判定原功能提交已处理,无法再次合并。

解决方案一:撤销main上的Revert提交(适合main未被广泛拉取的场景)

  1. 拉取最新main分支:
    git checkout main && git pull
    
  2. 执行git log --oneline找到Revert PR对应的提交哈希(通常带有"Revert"前缀)。
  3. 撤销该Revert提交(因是合并提交,-m 1指定以main为主父分支):
    git revert -m 1 <revert-commit-hash>
    
  4. 推送新提交到远程main:
    git push
    
  5. 此时再将main合并到develop,不会携带反向撤销提交,develop的功能会自动恢复;后续从dev向main发起PR时,原功能提交会被正常识别并合并。

解决方案二:Cherry-pick hotfix到develop(更安全,避免修改main历史)

如果main分支已被多位开发者拉取,修改历史可能引发同步冲突,推荐使用这个方法:

  1. 拉取最新develop分支:
    git checkout develop && git pull
    
  2. 执行git log --oneline main筛选出Revert提交之后的所有hotfix提交哈希。
  3. 将这些hotfix提交逐个cherry-pick到develop:
    git cherry-pick <hotfix-commit-1> <hotfix-commit-2>...
    
    • 若遇冲突,解决后执行git cherry-pick --continue;放弃操作则用git cherry-pick --abort。
  4. 推送更新后的develop到远程:
    git push
    
  5. 后续从dev向main发起PR时,原功能提交会与main上的Revert提交形成diff,合并PR后即可恢复原功能,同时保留hotfix变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:55:26