git lens 的“last changed”时间不准是因为依赖 git 提交历史而非本地修改,需暂存或提交才能更新;无 git 时可用 stat 或 powershell 查系统级修改时间。

Git Lens 显示的“Last Changed”时间不准怎么办
VSCode 本身不记录文件修改时间戳,它依赖 Git 历史来推断“最后修改时间”。如果你看到 Git Lens 插件显示的 Last Changed 是几天前,但实际刚改过某行,大概率是那行代码在上次 git commit 后没被再次提交过——Git 并不知道你本地改了什么,只认已暂存或已提交的变更。
实操建议:
- 确保修改后至少执行过
git add .(暂存),否则Git Lens无法感知“新变更” - 如果用的是浅克隆(
git clone --depth=1)仓库,Git Lens可能查不到早期提交,导致“Last Changed”显示为最近一次浅层提交时间 - 禁用
git blame.ignoreRevsFile配置(如项目里有.git-blame-ignore-revs),否则跳过的提交会让时间回溯失效
不用 Git 的情况下怎么查真实文件修改时间
当项目没开 Git,或你只想看操作系统层面的文件保存时间(比如调试时反复保存但没提交),就得绕过 Git Lens,直接读取文件系统元数据。
VSCode 没内置这个功能,但可快速验证:
- 在终端中运行
stat -f "%Sm" -t "%Y-%m-%d %H:%M" path/to/file.ts(macOS)或stat -c "%y" path/to/file.ts(Linux) - Windows 用户可用 PowerShell:
Get-Item .\src\index.ts | Select-Object LastWriteTime - 注意:这个时间反映的是「最后一次保存」,不是「最后一次编辑光标停留」;自动保存(
files.autoSave)开启时,它可能比你预期更频繁
如何让 VSCode 在侧边栏显示文件修改时间
默认的资源管理器(Explorer)只显示文件名和图标,不显示修改时间。没有原生开关,但有两个轻量级方案:
- 安装扩展
File Utils,启用后右键文件 →Copy File Info,会复制包含modified: 2026-05-11T14:22:03的完整路径信息 - 用
Remote - SSH连远程服务器时,资源管理器会自动显示修改时间(因底层调用ls -la),本地工作区不支持该行为 - 别依赖
Sort by Modified Time—— VSCode 的排序仅支持Name、Type、Size,没有Modified选项
审计多人协作项目的代码“年龄”分布
想批量统计一个项目里各文件/函数的最后提交时间?这不是 VSCode 单点能解决的,得组合命令行与轻量脚本。
推荐做法:
- 用
git log -1 --format="%ai %h" --name-only --no-commit-id --all -- **/*.ts快速导出所有 TypeScript 文件的最新提交时间 - 配合
awk或 Python 脚本按月分组统计,例如识别出utils/下 70% 的文件最后更新在 2024 年前,就该标记为技术债 - 避免用
git blame -l全量扫描——对大仓库(>10k 文件)会卡死 UI,应限定目录或用--since="6 months ago"
真正容易被忽略的是:修改时间 ≠ 维护质量。一行三年没动的代码,可能是稳定核心逻辑,也可能是没人敢碰的遗留模块——得结合 git log -S "functionName" 查具体函数变更频次,再下判断。











