跳到正文
MyDSH我的 DSH 实战笔记
English
独立维护,非DeepSeek官方;与mydsh.dev等其他MyDSH站点无关联。

首页/工作区与文件/工作区清理与回滚

误删之后怎么恢复:先把可恢复性变成事实

清理的时候手滑删多了,或者 AI 在清理残留时删掉了不该删的。

已核验版本与环境核验日期2026-11-14
适用范围
项目目录(个人目录的删除操作有额外规则)
核验日期
2026-11-14

可复制指令

tar -czf /tmp/ws-$(date +%H%M%S).tgz -C . --exclude='./.git' .
先说清边界:这一页讲项目目录里怎么恢复。桌面、下载、文档这类个人目录的批量删除,不在「直接执行」范围内,那类操作要先扫描、先报告、先确认。

恢复的前提是「有东西可恢复」。所以真正该做的是把可恢复性变成日常事实,而不是出事时想办法。

三层可恢复性,成本递增

层怎么做恢复耗时覆盖场景
版本控制git仓库 + 及时提交秒级(git checkout / git restore)已提交的一切
快照跑任务前tar一份目录分钟级未提交的改动
不做靠记忆重建不可估计——

实测一个最小的快照流程:

tar -czf /tmp/ws-$(date +%H%M%S).tgz -C . --exclude='./.git' .
# 出事之后
tar -xzf /tmp/ws-113045.tgz -C .

被 git 删掉的文件怎么救

  1. git status 看是不是暂存区还没提交的删除:git restore <文件> 直接回来。
  2. 已提交的删除:git checkout HEAD~1 -- <文件> 从上一个提交取回。
  3. 连提交都找不到了:git log --diff-filter=D --name-only 找是哪次删的。

被 rm 掉且没有 git

  • 先看回收站——不少工具删文件是进回收站而不是真删。
  • 看有没有编辑器或系统留下的临时文件、备份文件(*.bak、~$*、swap文件)。
  • 都找不到就承认找不回来。这时候不要尝试「数据恢复软件」往同一块盘上写东西——会覆盖掉本来还能救的数据。

把这次教训固化成规则

  • 凡是清理动作,先 find 列出清单,再删。列清单和删之间不要合并在一条命令里。
  • 批量删除一次不超过十份,删完核对一次。
  • 让AI清理残留时,明确要求「先列清单等我确认」,不要给「清理干净」这种开放式指令。

怎么算跑通

照着逐条对,全过才算完成。有一条没过,先解决它再往下。

  • 恢复后文件内容与原文件一致(哈希或肉眼核对)
  • 知道自己当前处于三层里的哪一层
  • 清理动作已经改成「先列后删」

会失败在哪

现象 / 原因 / 怎么办,按实际踩到的顺序写。

现象原因怎么办
git restore说不认识这个路径路径写错,或文件从未被git跟踪git status里复制完整路径;未被跟踪的文件git救不了
恢复到的是旧版本取的是更早的提交用git log -- 文件 找到包含最新内容的提交再取

来源

标「已核验」的,来自本站实跑;标「公开资料整理」的,逐条附出处。