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

执行git push -f强制推送后丢失远程创建的README文件如何找回

找回被强制推送覆盖的远程README文件

直接在远程创建的README对应的提交未同步到本地时,回退本地提交的方案无效,按以下步骤操作即可找回:

  • 优先翻查执行git push -f origin main时的终端输出:强推操作执行时,终端一定会打印forced update from <旧提交哈希> to <本地新提交哈希>格式的提示,其中的旧提交哈希就是远程分支被覆盖前最后一次提交的ID,直接复制该哈希即可跳过后续查找步骤。
  • 若已清空终端记录找不到上述提示,在本地仓库目录依次执行以下命令,拉取远程全量提交对象并列出无引用的悬空提交:
git fetch origin
git fsck --lost-found

命令执行后输出的所有带dangling commit标记的条目,就是被强推覆盖后未被任何分支引用的旧提交,每个条目对应一串提交哈希。

  • 逐个查看悬空提交的文件内容,定位包含目标README的提交:
    git show <提交哈希值>
    确认提交内包含需要找回的README文件后,执行命令将文件从该提交检出到本地工作区:
    git checkout <对应提交哈希值> -- README.md
  • 将找回的README提交推送回远程仓库即可:
git add README.md
git commit -m "restore accidentally overwritten README"
git push origin main

注意:Git服务端不会立刻清理被强推覆盖的提交,默认保留周期不短于2周,操作过程中不要手动执行git gc类垃圾回收命令,文件即可正常找回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:03:20