
GitLens 启用全仓库历史扫描导致比对卡顿
GitLens 默认开启 gitlens.advanced.caching.enabled 和 gitlens.historyExplorer.enabled,会在后台拉取整个仓库的 commit 历史、作者、变更行数等信息。一旦项目超过 1000 次提交或含大量分支,它就会持续占用 CPU,拖慢“当前行历史”“比较工作区与 HEAD”等操作。
实操建议:
- 在
.vscode/settings.json或用户设置中显式关闭高开销功能:"gitlens.advanced.caching.enabled": false,<br>"gitlens.historyExplorer.enabled": false,<br>"gitlens.codeLens.recentChange.enabled": false
- 保留核心能力(如右键
Git: Compare with Previous Version),但禁用自动加载历史面板 - 若必须用历史视图,改用命令面板执行
GitLens: Open File History按需触发,而非常驻
VSCode 内置 Source Control 面板刷新大量文件时假死
点提交前没填 message,面板不会报错也不会提示,而是卡在“等待输入”状态——看起来像崩溃,实际是 UI 线程被阻塞在等待输入框值。尤其当已 stage 的文件数 >200,它还会同步做 diff 计算,进一步加剧延迟。
实操建议:
- 务必在顶部
Message输入框内先敲至少一个字符(比如空格),再点提交按钮 - 避免一次性 stage 所有改动:用右键
Stage Selected Ranges或终端执行git add src/utils/分模块提交 - 确认
.gitignore已包含node_modules/、dist/、*.log,否则这些文件会参与 diff 计算并拖慢刷新
插件冲突使 Git 操作响应延迟超 2s
GitLens + ESLint + Prettier 三者同时启用时,保存文件可能触发链式反应:ESLint 校验 → Prettier 格式化 → GitLens 刷新行级 blame → 触发文件监视器重扫 → 主线程卡顿。这种叠加效应在 macOS/Linux 上更明显,因为 inotify 句柄容易耗尽。
实操建议:
- 用
code --disable-extensions启动验证是否插件引起;若恢复流畅,再运行Developer: Start Extension Bisect二分定位 - 检查
Developer: Show Running Extensions中Activation Time>1000ms 或CPU列频繁跳动的插件(GitLens、ESLint、Prettier 常列前三) - 把
"eslint.run": "onSave"改为"onType"会显著加重负担,应保持为"onSave";Prettier 同理,确保"prettier.requireConfig": true避免无配置时全局格式化
files.watcherExclude 配置失效引发后台抖动
很多人复制粘贴 "**/node_modules/**": true 却漏掉双星号开头或末尾斜杠,导致路径没被真正排除。结果 VSCode 仍在监听 node_modules/.bin 下几百个可执行文件,每次 npm install 后触发大量事件,Git 扩展反复刷新状态。
实操建议:
- 必须使用双星号通配:
"**/node_modules/**"✅,"node_modules/**"❌,"**/node_modules"❌ - 把
.gitignore里所有条目转成 watcher 排除项,例如:"**/coverage/**": true,<br>"**/__pycache__/**": true,<br>"**/.next/**": true
- 改完后必须关闭并重新打开工作区(仅刷新窗口不生效)


















