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

如何撤销尚未push的revert commit,保留本地代码并推送变更?

操作步骤(全程不会丢失你要保留的代码)

第一步:撤销本地的revert commit,恢复被移除的代码

首先执行git log --oneline找到你刚才执行revert生成的commit记录,记下对应哈希值的前7位(比如示例为abc1234)。

  • 如果你已经完成了revert的提交:执行git reset --soft abc1234~1,该操作会撤销revert提交,同时把被revert抹除的代码变更全部保留在暂存区,和你贴出的git status里的待提交变更一致
  • 如果你还没提交revert的结果:直接执行git revert --abort即可终止revert操作,恢复所有代码

第二步:新建分支备份要保留的代码

现在暂存区的内容就是你要留存的代码,直接执行以下命令:

  1. 新建并切换到新分支:git checkout -b <自定义分支名,比如backup/listings-related-code>
  2. 提交暂存的代码到新分支:git commit -m "backup: 留存列表页相关原有代码"
  3. 推送新分支到远端备份:git push origin <刚才的自定义分支名>
    完成后你的代码就安全备份在远端新分支,不会丢失。

第三步:在新分支执行取消合并的revert操作

现在你在新建的分支上,找到你原本要取消的那次合并的commit哈希,执行:
git revert -m 1 <合并commit的哈希值>
这里的-m 1表示以master分支的代码作为父版本,实现取消合并的效果。执行后检查代码是否符合预期,revert会自动生成提交信息,确认后直接完成提交即可。

第四步:推送revert结果到GitHub并发起PR

执行git push origin <你的新分支名>,将revert后的代码推送到远端。
如果之前发起PR看不到差异,是因为你的分支和远端master的提交基线不一致,推送前先执行git pull origin master拉取最新的master代码,解决可能存在的冲突后再推送,PR就能正常显示所有变更差异,无需强制提交


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:09:02