误删代码后首选ctrl+z/cmd+z撤销;其次查timeline快照;文件消失可尝试recover unsaved changes;git项目优先用git restore或git checkout恢复。

误删代码后第一反应:立刻按 Ctrl+Z 或 Cmd+Z
这是最直接、成功率最高的自救方式,前提是删除操作刚发生,且中间没进行大量其他编辑或保存动作。Ctrl+Z(Windows/Linux)和 Cmd+Z(macOS)不是“返回上一位置”,而是撤销上一步编辑行为——包括删行、删块、清空整个文件内容等。
- 它能撤销的不仅是光标移动,而是所有可逆的编辑变更(输入、粘贴、删除、格式化等)
- 撤销是栈式操作:连续按多次,会逐层回退;但一旦执行了新编辑(比如又敲了一个字母),后续的撤销历史就会被截断
- 关闭文件后再打开,
Ctrl+Z就失效了——VSCode 不保留跨会话的编辑撤销栈
删完才发现晚了?查 Timeline 本地快照
VSCode 内置的 Timeline 视图会自动保存文件的修改快照(默认每 2 分钟 + 每次保存时生成),即使你关过文件、重启过编辑器,只要没清缓存,这些记录还在。
- 在资源管理器中右键目标文件 → 选择
Reveal in Timeline,或点击文件名右侧的时钟图标 - 列表里显示的是时间戳 + 操作类型(如 “Saved”, “Auto-saved”),点开任一节点就能看到当时完整的文件内容
- 注意:这个功能依赖
files.autoSave设置;如果设为off且你从不手动保存,快照可能极少甚至没有
文件整个不见了?试试 File: Recover Unsaved Changes
如果你用快捷键(比如 Shift+Delete)或右键误删了整个文件,但它曾被 VSCode 打开过、且还没彻底从磁盘擦除,就还有机会捞回来。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入并选择
File: Recover Unsaved Changes—— 它会列出所有近期打开过、但当前已不存在于磁盘的文件缓存 - 选中对应文件,右键 →
Save As...即可另存恢复;但注意:该功能只对未保存/未提交的临时缓冲有效,不适用于已提交 Git 后又被git clean -f清掉的文件
项目开了 Git?别犹豫,直接用 git restore 或 git checkout
这是最可靠、最可控的恢复方式,尤其适合删了多处、改了结构、或者已经过了好几分钟的情况。
- 如果文件只是被删但还没
git add:运行git restore <file-path></file-path>(Git 2.23+)或git checkout -- <file-path></file-path>(旧版) - 如果删完还做了其他提交,想回到某个历史状态:先
git log --oneline找 commit ID,再git restore -s <commit-id> -- <file-path></file-path></commit-id> - 切记:Git 只管被它跟踪的文件;新建未
git add的文件被删后,Git 压根不知道——这时候就得靠Timeline或系统回收站
真正容易被忽略的一点是:VSCode 的撤销栈和本地历史都依赖「自动保存」与「文件是否被 Git 跟踪」这两个开关。很多人关了 autoSave,又没配 Git,删错之后只剩回收站一条路——而远程开发环境里,回收站根本不存在。










