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

误执行git push -f origin master致README.md丢失,如何找回对应提交?

找回被强制推送覆盖的Git提交及文件

利用Git引用日志(reflog)恢复

  • 登录远程服务器的目标Git仓库目录,执行命令查看master分支的所有历史操作记录:
    git reflog show master
    从输出里找到包含README.md编写完成那次提交的记录,记下对应的提交哈希值(例如a1b2c3d)。
  • 直接将远程master分支恢复到该提交:
    git push origin a1b2c3d:master
    或者在远程仓库本地重置分支后再推送:
    git reset --hard a1b2c3d
    git push origin master --force(仅当本地重置后需要同步远程时使用)

查找并恢复悬空提交

如果reflog没有目标记录,可尝试查找Git保留的悬空提交:

  • 执行命令列出所有悬空提交:
    git fsck --lost-found
    输出中的dangling commit条目即为未被引用的历史提交,逐个查看提交内容定位目标:
    git show 提交哈希值
  • 找到包含README.md的提交后,创建临时分支指向它:
    git branch recover_commit 提交哈希值
    随后将该分支合并到master,或直接重置master到该提交,最后推送更新远程仓库。

关键提示

  • Git默认会保留未被引用的提交90天,超出时间可能被垃圾回收(gc)清理,需尽快操作。
  • 若远程仓库已执行过git gc --prune=now这类强制清理命令,找回概率会大幅降低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:35:20