ctrl+z是最轻量可靠的撤销方式,vscode默认保留几十步线性撤销栈;文件内容丢失可查timeline快照;已跟踪文件删除可通过git discard changes恢复;未保存文件需依赖local history扩展或命令面板查找快照。

刚删完就发现错了,立刻按 Ctrl+Z(Windows/Linux)或 Cmd+Z(macOS)
这是最轻量、最可靠的“后悔药”,只要没关文件、没切窗口、没执行其他编辑操作,Ctrl+Z 通常能一步回退删除动作。VSCode 的撤销栈默认保留几十步,但它是线性且易被覆盖的——比如你删完又敲了几个字母再撤,可能就跳过关键节点了。
容易踩的坑:
• 不要连按太多下,先松手,看内容是否回来;
• 如果误删后顺手保存了(Ctrl+S),撤销仍有效,但一旦重启 VSCode,这个栈就清空了;
• 某些插件(如 Prettier 自动格式化)可能插入中间步骤,导致撤销行为不直观。
文件还在,但代码段没了:查 Timeline 视图里的本地快照
VSCode 默认每 10 分钟自动存一份文件快照,关机、重启也不丢(只要没清缓存)。打开资源管理器,选中那个被删了代码的文件,在右侧找 Timeline 标签页,里面列出的每一条都是历史版本,点开就能预览当时的内容。
实操建议:
• 快捷键 Ctrl+Shift+P → 输入 “Open Timeline” 直接唤出;
• 时间戳靠后的条目更可能含你删掉前的状态;
• 别直接点“Restore”,先右键 → “Compare with Current” 确认差异,避免误恢复旧逻辑;
• 如果没看到 Timeline,说明该文件从未被保存过(即“Untitled-1”类临时文件),此时只能靠撤销或回收站。
文件整个不见了:去源代码管理里点 Discard Changes
只要你用 Git,且删的是已跟踪(tracked)的文件,它不会真消失,只是出现在“CHANGES”列表里,带个删除图标。打开左侧源代码管理面板(Ctrl+Shift+G),在“Changes”区域找到那个灰掉的文件名,鼠标悬停,出现三个小图标,点中间那个 Discard Changes,确认弹窗里的 “Restore File” 就行。
注意条件:
• 文件必须是 Git 已知的(即之前提交过或 git add 过);
• 如果删完还手动运行过 git clean -f 或清过工作区,这招就失效;
• 若文件是新建未提交的(untracked),Git 不管,得靠本地历史或回收站;
• macOS 用户注意:系统级“移到废纸篓”和 VSCode 内部删除是两回事,前者进垃圾箱,后者只触发 Git 删除。
啥都没留?试试 Local History 扩展或命令面板搜 Find Entry to Restore
VSCode 原生 Timeline 依赖文件系统事件,有时会漏掉瞬间操作。装个 Local History 扩展(微软官方维护)能补上这个缺口,它把每次保存、重命名、甚至编辑焦点切换都记下来。或者不用装插件,直接 Ctrl+Shift+P → 输入 “Find Entry to Restore”,它会列出近期所有被删/重命名的文件路径,选中即可打开对应快照。
关键提醒:
• 这些快照存在 VSCode 的 ~/.vscode/extensions/.../history 下,不是永久的,旧记录会被自动轮转清理;
• 如果你定期清系统缓存或重装 VSCode,这部分历史大概率没了;
• 它对远程开发(SSH / Containers)支持有限,本地历史只存于你当前连接的机器上。
真正难救的情况,是文件既没进 Git、又没保存过、还清空了回收站——这时候恢复软件(如 Recuva 或 Disk Drill)只能碰运气,因为 VSCode 编辑时并不总写入磁盘,很多内容只在内存或临时缓冲区里。所以别等删了才想备份,git commit 和 Ctrl+S 之间那几秒,就是你唯一的保险绳。










