AI 删除了我的代码:如何恢复
Source: Dev.to

首先:不要关闭任何东西
你的编辑器很可能仍在内存中保留已删除的文件。每关闭一个标签页都可能导致丢失。请在处理此问题时保持所有标签页打开。
检查编辑器的撤销历史
如果已删除文件的标签页仍然打开,尝试反复使用 Ctrl+Z(Mac 上为 Cmd+Z)。有时即使文件已经从磁盘删除,内容仍可以恢复。这并不总是有效,尤其是当 AI 在未打开文件的情况下直接删除时,但值得先尝试。
使用本地历史
VS Code 和 Cursor 都会维护本地文件更改历史,很多开发者并不知道这点。
- 按
Ctrl+Shift+P(或Cmd+Shift+P)。 - 输入 Local History: Find Entry to Restore。
- 浏览查找已删除的文件。
只要文件曾经被编辑过,即使已经删除,也可以恢复。
检查 AI 工具的恢复功能
- Cursor:在 Composer 面板中查找 “Checkpoint created” 消息。每次提示都会创建一个检查点,你可以点击对应的 Restore 恢复到删除前的状态。
- Claude Code:连续按两次
Esc或输入/rewind打开检查点菜单。你可以只恢复代码、只恢复对话,或两者一起恢复。
这些功能依赖于对话上下文。如果在删除后你已经做了大量工作,或删除是通过标签补全而非 Composer 完成的,可能找不到有用的检查点。
回退到 Git
如果在 AI 进行更改之前已经提交,Git 可以恢复文件:
git status # 查看哪些被删除
git checkout . # 将所有内容恢复到最近一次提交的状态
如果没有提交,Git 无能为力——这也是为什么要定期提交的原因。
当所有方法都无效时
检查系统备份:
- macOS:Time Machine
- Windows:文件历史记录
- 云同步服务:Dropbox、OneDrive、Google Drive 等
这些服务可能保存了文件的近期版本。成功率不高,但有时确实能起作用。
防止下次再发生
AI 代理行为不可预测。更好的提示和仔细的差异审查可以降低风险,但并不能完全消除。关键是要在工作流中内置恢复机制,而不是事后补救。
使用 mrq
mrq 会监视项目目录,自动捕获每一次文件更改——无需手动提交。
mrq watch # 开始监视项目
mrq history # 查看最近的快照
mrq restore abc123 # 恢复到指定的快照
有了 mrq,即使从未提交,你也能回到之前的确切状态。每一次更改都会被捕获,每一个状态都可以恢复。
mrq 在你使用 AI 编码时自动捕获所有文件更改。只需设置一次,出现问题时即可瞬间恢复。