VSCode时间轴(Timeline)是轻量级文件变更时间线,非Git历史替代品;需先聚焦已打开的Git跟踪文件,才能显示本地保存(灰色圆点)与Git提交(绿色圆点)混合记录,并支持diff对比与还原。

VSCode 时间轴(Timeline)不是 Git 历史的替代品,而是你没 Ctrl+S 之前就丢掉代码时唯一能拉你一把的东西。
时间轴对比必须先聚焦文件,否则点啥都没反应
时间轴功能完全绑定当前激活的编辑器标签页。你在资源管理器里右键某个提交、双击某条记录、甚至点了“与工作区比较”,如果当前编辑器没打开那个文件,VS Code 就不会加载任何 diff —— 它连“比什么”都不知道。
- 必须手动打开目标文件(比如
utils/format.js),且确保该标签页处于焦点状态 - 再点侧边栏的“时间轴”标签,才能看到该文件的本地保存记录 + Git 提交混合列表
- 灰色圆点是本地自动保存(每 2 分钟或手动
Ctrl+S触发),绿色是 Git commit;双击任意一条,才会在新标签页打开 diff 视图 - 如果点完没反应,第一反应不是插件坏了,而是检查左上角编辑器标题是否显示了文件路径,且没被其他面板遮挡
Compare with Selected 在时间轴里根本不能用
时间轴里的每条记录本质是“一个时间点的文件快照”,不是独立文件实体。你无法像比两个磁盘文件那样右键选中 A 再右键选中 B 然后点 Compare with Selected —— 这个菜单项在时间轴上下文里压根不出现。
- 要对比两个历史版本,只能:右键第一条 → 选
Compare with Current,再右键第二条 → 也选Compare with Current,然后手动切换两个 diff 标签页来回看 - 想直接比 A 和 B 两个历史版?做不到。VS Code 不提供“时间轴内两快照互比”能力,这是硬限制
- 真有这需求,得切到终端:
git show abc123:src/api/client.ts > a.ts && git show def456:src/api/client.ts > b.ts,再用 VS Code 打开这两个临时文件去比
Local History 不持久,关了文件或清缓存就可能消失
VS Code 的本地历史记录存在内存+临时目录里,不是写进 Git 或磁盘文件。它默认只保留最近 30 天、最多 50 条,而且一旦你关闭了那个文件标签页,再打开时时间轴可能只剩 Git 提交,本地保存点全没了。
- 别指望它当长期备份:它救急可以,但不能替代
git add+git commit - 路径位置因系统而异:
$HOME/Library/Caches/Code/Cache/LocalHistory(macOS)、%APPDATA%\Code\Cache\LocalHistory(Windows),但手动翻没用 —— 文件名是哈希,内容加密,不可读 - 如果你刚删了一段调试代码,赶紧按
Ctrl+Shift+P输入Timeline: Show Timeline,再双击最近一条灰色记录还原,别等关 tab - 设置里搜
files.hotExit设为onExitAndWindowClose能略微延长存活时间,但不解决根本问题
时间轴最常被忽略的一点:它只记录你保存过的版本。如果你改了 20 行、没保存、直接关了 VS Code —— 那些修改彻底消失,Timeline 里连影子都没有。它的“后悔药”效力,严格取决于你按 Ctrl+S 的频率。


















