sublime text 不读取 .gitignore,侧边栏隐藏仅依赖 folder_exclude_patterns(匹配文件夹名)和 file_exclude_patterns(匹配文件名),二者仅支持 glob 通配符、不支持 .gitignore 语法,修改后需重启或刷新文件夹才生效。

Sublime Text 不会、也不能隐藏被 .gitignore 忽略的文件——它压根不读 .gitignore,所谓“隐藏”是误解。
Sublime 的侧边栏根本无视 .gitignore
很多人打开项目后发现 node_modules/ 或 dist/ 还在侧边栏里,以为是配置没生效。其实不是配置错了,是 Sublime 原本就不支持这个功能。它的侧边栏只认两个本地设置:
-
folder_exclude_patterns:匹配文件夹名,如["node_modules", "build"] -
file_exclude_patterns:匹配文件名,如["*.pyc", ".DS_Store"]
这些规则是纯通配符(类似 shell glob),不支持 .gitignore 语法:**/temp/、!src/main.js、注释行、前置斜杠等全无效。改完必须重启 Sublime 或右键 → Refresh Folders 才能刷新显示。
为什么 Git 插件(如 GitGutter)不能帮你隐藏文件
GitGutter 等插件确实能识别 .gitignore,但它只做一件事:调用 git status 获取文件状态,并在行号旁画图标(+ / − / ●)。被忽略的文件不会显示图标,仅此而已。
它不会:
- 从侧边栏移除或灰显文件
- 过滤
Ctrl+P文件搜索结果 - 禁用对这些文件的编辑或保存
换句话说:GitGutter 只“看得到”,但不“动得了”侧边栏。
想让侧边栏“看起来像”遵循 .gitignore?只能手动同步
没有插件能全自动转换 .gitignore 成 Sublime 排除规则,尤其遇到否定规则(!)、嵌套路径(src/**/test.js)或注释时必然失败。可行做法是:
- 打开项目根目录的
.gitignore,逐行检查简单条目,如build/→ 改成"build",*.log→ 保留为"*.log" - 去掉所有开头斜杠(
/dist→"dist")、双星号(**/cache→ 无法表达,得写成"cache"并接受误杀) - 把整理后的条目合并进 Sublime 用户设置:
Preferences → Settings,填入folder_exclude_patterns和file_exclude_patterns - 特别注意:
.git文件夹默认不隐藏,如需隐藏,必须手动加进folder_exclude_patterns
这本质是“视觉模拟”,不是真实同步;一旦 .gitignore 更新,就得人工再扫一遍。
真正被 Git 忽略的文件,是否在 Sublime 侧边栏出现,和 Git 本身完全无关——那是 Sublime 自己的显示逻辑。别指望靠 Git 配置驱动编辑器 UI,这是两个独立系统。











