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

反向覆盖Git仓库恢复:误执行git push --force清空提交历史能否恢复?

Git强制推送覆盖远程仓库历史的恢复方法

可以撤销该操作,根据你当前的可用条件选择对应操作即可:

有其他设备/协作者持有旧仓库完整克隆

这是最简单的恢复方案:

  • 找到持有未被覆盖的旧仓库副本的设备,确认该副本包含所有丢失的提交历史
  • 在该设备上执行 git push --force origin <对应分支名> ,直接覆盖当前被错误推送的远程仓库即可恢复全部历史

操作使用的本地设备还保留原.git目录(未删除原.git文件夹直接重新初始化)

可以通过本地reflog找回历史:

  • 执行 git reflog 查看本地操作记录,找到强制推送前的最新提交对应的哈希值,记录格式一般为 HEAD@{n} 或直接展示提交哈希前缀
  • 执行 git reset --hard <旧提交哈希> 将本地仓库恢复到被错误修改前的状态
  • 执行 git push --force origin <对应分支名> 推送到远程完成恢复

本地无有效旧副本,仅能通过GitHub平台恢复

  • 首先获取被覆盖前的最新提交哈希:进入GitHub对应仓库主页,点击「Insights」-「Network」即可查看所有历史提交脉络,找到错误推送前的最新提交哈希;如果此前有合并过Pull Request、运行过CI流水线,也可以在对应PR或CI记录中找到旧提交哈希
  • 拿到哈希后在本地执行以下命令:
    git fetch origin <旧提交哈希>
    git reset --hard FETCH_HEAD
    git push --force origin <对应分支名>
    
  • 如果无法找到旧提交哈希,可以联系GitHub官方支持申请恢复,90天内的提交记录一般都可以找回
注意事项
  • 所有操作执行前建议先备份当前本地的所有仓库文件,避免二次误操作导致数据丢失
  • 恢复完成后建议开启GitHub分支保护规则,禁止默认分支的强制推送操作,避免同类问题再次发生

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:27:05