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

如何撤销已推送到GitHub的代码?误推至旧分支的解决方法

如何撤销误推送到GitHub旧分支的代码

当然可以撤销已推送到GitHub的代码,具体操作分两种场景:

场景1:旧分支仅你个人使用(无其他协作者)

这种情况可以直接重置远程分支到误推前的状态:

  • 首先通过git log找到误推前的提交哈希值(或用HEAD~1指代上一个提交),执行本地重置:
    git reset --hard <误推前的提交哈希/HEAD~1>
    
    注意:--hard会丢弃本地未提交的修改,若有未保存的代码,先执行git stash备份,之后用git stash pop恢复
  • 强制推送本地重置后的分支到远程,覆盖错误提交:
    git push -f origin <旧分支名称>
    

场景2:旧分支有其他协作者(避免破坏他人工作)

这种情况不能强制覆盖远程分支,需通过创建反向提交来撤销:

  • 找到误推的提交哈希,生成一个反向抵消的新提交:
    git revert <误推的提交哈希>
    
    revert不会修改历史提交,而是新增一个提交来抵消误操作,对协作者更友好
  • 将这个反向提交推送到远程旧分支:
    git push origin <旧分支名称>
    
  • 把原本要推送的代码转移到正确的新分支:
    1. 切换到目标新分支(未创建则执行git checkout -b <新分支名称>):
      git checkout <新分支名称>
      
    2. 将误推的提交复制到新分支:
      git cherry-pick <误推的提交哈希>
      
    3. 推送到新分支:
      git push origin <新分支名称>
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:40:26