You need to enable JavaScript to run this app. 如何撤销git reset --hard操作恢复被删除的未提交文件
优惠活动
大模型
产品
解决方案
定价
更多

如何撤销git reset --hard操作恢复被删除的未提交文件

git reset --hard 误删未提交本地文件的恢复方案

你贴出的命令输出卡0%是终端显示错位导致的假象,输出末尾的Checking object directories: 100% (256/256), done.已说明该步骤执行完成,前面的0%进度是冗余错位内容,不影响命令实际执行结果。

恢复前先区分文件类型

不同状态的文件恢复方式完全不同:

1. 曾被git追踪过的文件(至少执行过一次git add或git commit的文件)

  • 先执行git reflog查看操作历史,找到你执行git reset --hard之前的对应commit哈希,无后续操作的话通常对应HEAD@{1}
  • 如需恢复整个分支到reset之前的状态,执行:
    git reset --hard <目标commit哈希>
    
  • 如只需恢复单个文件,执行:
    git checkout <目标commit哈希> -- <待恢复文件的完整路径>
    
  • 如果reflog中找不到目标commit,可执行git fsck --lost-found扫描悬空对象,执行完成后:
    • 历史commit快照会存放在.git/lost-found/commit/目录下
    • 曾add到暂存区但未commit的文件快照会存放在.git/lost-found/other/目录下,可直接将对应文件拷贝出来重命名恢复内容

2. 从未执行过git add的全新未提交文件

git本身不会存储未进入暂存区的文件快照,无法通过git命令恢复,可尝试以下方式:

  • 查看所用IDE的本地历史备份(如VS Code本地历史、JetBrains系列IDE的Local History功能)
  • 使用系统级文件恢复工具扫描磁盘恢复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 08:06:01