VSCode内置Timeline功能是恢复已删文件的唯一可靠方式,需确保文件在工作区、localHistory启用且未被watcherExclude排除;Remote SSH下历史存于远程服务器,快照仅对已保存文本文件生效。

Ctrl+Shift+P → Timeline: Open Timeline 是唯一可靠入口
别试图用 Ctrl+Z 恢复已删文件——它只管编辑器内未关闭的标签页,一旦文件从资源管理器消失,撤销栈就失效了。真正起作用的是 VSCode 内置的 Timeline 功能,它和 Local History 插件共用同一套快照机制,但入口统一、解析稳定。
常见错误现象:右键文件没看到 Open Timeline;按 Ctrl+Shift+P 输“Timeline”却提示“command not found”。这通常是因为:
- 文件不在当前工作区(即你没用
File → Open Folder…打开整个项目) -
files.localHistory.enabled被手动关掉了(检查设置里是否为true) - 该路径被
files.watcherExclude排除(比如"**/dist/**"或自定义的"**/tmp/**")
文件已删?用命令面板模糊搜索直接定位
资源管理器里找不到目标文件?没关系。只要它曾被 VSCode 打开并保存过,历史记录就在那儿。
操作步骤很窄:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Timeline: Open Timeline,回车 - 在右上角搜索框里输文件名关键词(如
api会匹配api.ts、apiClient.js) - 选中结果后,点击右侧
Restore按钮——它会直接覆盖当前编辑器内容,不是新建标签页
注意:Restore 不会自动保存。恢复后务必立刻按 Ctrl+S,否则下次编辑保存会把快照又盖掉。
Remote SSH 下历史在远程服务器,不是你本地硬盘
用 Remote SSH 连 Linux 服务器开发时,所有 .history/ 快照都存在远程路径:~/.vscode-server/data/User/History/。你在本地按 Ctrl+Shift+P 调出的 Timeline,背后走的是 SSH 连接,读的就是这个目录。
这意味着:
- 本地磁盘查不到任何
.history/文件——别白费力气翻自己电脑 - 如果远程服务器磁盘满了或被清理过,
History/可能为空,此时 Timeline 面板将无记录可显示 -
grep -rl "your-filename" ~/.vscode-server/data/User/History/ 2>/dev/null可快速验证是否存在匹配快照
Local History 插件 vs 内置 Timeline:别装两个,优先关插件
VSCode 1.44+ 已原生支持 Timeline,功能与主流 Local History 插件(如 xyz 版本)完全重叠,且更稳定。同时启用两者会导致:
- 重复生成快照,双倍占用磁盘空间
- 右键菜单出现两个相似选项(
Open Timeline和Local History: Show History),容易混淆 - 插件版本滞后时,可能解析不了新版 Timeline 的快照格式
建议做法:卸载第三方 Local History 插件,只保留内置功能。确认 files.localHistory.enabled 为 true 即可——它默认开启,无需额外配置。
最易被忽略的一点:快照只对**已保存的文本文件**生效。未保存就删掉的文件、二进制文件(如 .safetensors)、或被 files.watcherExclude 拦截的路径,Timeline 里根本不会出现记录。


















