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

误删本地Git仓库及GitHub文件如何恢复?命令行推送后文件丢失

恢复误删Git项目文件的可行方案

先别急,这种情况还是有机会找回文件的,我给你分Git层面和系统层面的方法一步步来试:

Git相关恢复方法(优先尝试)

这些方法是利用Git自身的日志和数据库来恢复,成功率比较高,如果你的修改曾经被Git追踪过,大概率能找回来:

  • 检查Git引用日志(reflog)
    Git的reflog会记录所有HEAD的变动,哪怕你做了硬重置或者删除了分支,这些记录都还在。先在项目目录下运行:

    git reflog
    

    你会看到一串带有提交ID、操作说明的记录,找到你误删文件之前的那个提交(比如显示HEAD@{n}: commit: xxx或者HEAD@{n}: checkout: moving from...的条目),然后用对应的提交ID恢复:

    git reset --hard <你找到的提交ID>
    

    执行完这个命令,你的本地仓库应该就能回到那个提交的状态了。

  • 查找Git中丢失的对象
    如果你的修改还没来得及提交,或者提交没被reflog记录到,可以试试让Git扫描未被引用的对象:

    git fsck --lost-found
    

    这个命令会把找到的丢失对象放到项目目录下的.git/lost-found/文件夹里,里面可能包含你未提交的文件内容。你可以逐个查看这些文件(比如用cat命令),把有用的内容复制出来重新整理。

系统级文件恢复(如果Git方法无效)

如果Git层面找不到任何痕迹,说明文件是被直接从磁盘删除且Git没来得及追踪,这时候需要用系统自带的工具或者第三方恢复软件:

  • Windows系统

    • 如果开启了「文件历史记录」,可以直接通过控制面板的文件历史功能恢复删除的文件夹;
    • 第三方工具可以用Recuva,选择项目所在的磁盘分区进行扫描,注意扫描时不要往这个分区写入新文件。
  • macOS系统

    • 如果你开启了Time Machine备份,直接打开Time Machine找到对应时间点的项目文件夹恢复即可;
    • 第三方工具推荐Disk Drill,扫描对应的磁盘分区,恢复被删除的文件。
  • Linux系统

    • 可以用testdisk工具,它能扫描磁盘恢复被删除的文件;
    • 如果是ext文件系统,也可以用extundelete工具,指定分区进行恢复。

重要提醒:不管用哪种系统级恢复工具,现在绝对不要往项目所在的磁盘分区写入新内容(比如安装软件、下载文件、保存文档),否则被删除的文件可能会被新数据覆盖,彻底无法恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:51:46