未提交代码时误执行git rm -r后如何恢复文件?
恢复
git rm -r删除的无提交记录文件 情况1:文件曾被git add过(未提交)
如果你的文件之前执行过git add(哪怕没做过git commit),可以通过git的对象数据库恢复:
- 第一步:扫描git未引用的对象
执行命令:
该命令会把所有未被追踪的git对象存入git fsck --lost-found.git/lost-found/blobs目录。 - 第二步:识别并恢复目标文件
遍历目录中的哈希文件,用git show查看内容:
确认是需要恢复的文件后,将内容导出到原文件名:git show <对象哈希值>git show <对象哈希值> > 原文件名
情况2:文件从未被git add过
如果文件从未被git追踪过,git无法帮你恢复,只能依赖系统级工具:
- Windows:使用Recuva、Disk Drill等数据恢复软件
- macOS:借助Disk Drill或已开启的Time Machine
- Linux:尝试
testdisk/photorec命令行工具,或检查桌面环境回收站
重要提示:磁盘写入新数据会降低恢复成功率,恢复前避免向磁盘写入任何内容。
内容的提问来源于stack exchange,提问作者caxefaizan
相关产品推荐
相关产品推荐

