goland中.gitignore规则不生效,因ide的excluded设置与git忽略机制独立;需右键目录→mark as excluded才能隐藏vendor、bin等目录,实现折叠与索引过滤。

GoLand 为什么 .gitignore 里的规则不生效
因为 GoLand 的“项目目录层级显示”和 Git 的 .gitignore 完全是两套机制——前者靠 IDE 自己的 Excluded 设置,后者只影响 Git 提交行为。你往 .gitignore 里加 /vendor 或 /bin,GoLand 该展开还是展开,文件树里照样密密麻麻。
怎么让 GoLand 折叠掉 vendor、bin、pkg 这类目录
必须手动标记为 Excluded,IDE 才会从项目视图中隐藏它们:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 右键点击目录(如
vendor)→ Mark Directory as → Excluded - 被标记后,该目录图标变灰,且不再参与代码索引、跳转、搜索(
Ctrl+Click不再能进) - 多个目录可批量操作:按住
Ctrl(Windows/Linux)或Cmd(macOS)多选,再统一标记 - 已标记的目录不会出现在
Project视图里,但仍在Files视图(Alt+1切换)中可见
Excluded 和 Ignored 的区别在哪
Excluded 是 GoLand 级别的视觉与索引过滤,Ignored 是 Git 级别的提交过滤,两者互不影响:
-
Excluded目录:不参与代码补全、无法Ctrl+Click跳转、不出现在Find in Path结果中 -
Ignored目录(仅由.gitignore控制):仍会被 GoLand 索引,照样能跳转、补全、搜索,只是git status不报它 - 常见误操作:把
node_modules加进.gitignore后发现 GoLand 还是卡顿——那是因为它还在索引;必须同时Mark as Excluded
如何一次性设置新项目的默认排除规则
GoLand 不支持全局预设 Excluded 规则,但可通过模板目录 + 配置复用降低重复劳动:
- 新建项目时,先在空目录下手动
Mark as Excluded常见干扰项:bin、pkg、vendor、.idea、.vscode - 之后每次新建项目,复制这个已配置好的骨架目录,再
Open而非New Project,就能继承全部Excluded状态 - 注意:
Excluded状态保存在.idea/misc.xml中,所以必须把整个.idea目录一起复制(但别提交到 Git) - 如果用脚本初始化项目,可在创建后自动执行:
echo 'mark excluded bin pkg vendor' && goland --line 0 --project-dir .(需配合插件或外部工具触发,原生不支持命令行批量标记)
Excluded,不是 .gitignore;而 .gitignore 里漏写的条目,哪怕没被 IDE 排除,也迟早会在 git add . 时悄悄混进仓库。










