GoLand 清缓存需区分 IDE 缓存与 Go 工具链缓存:File → Invalidate Caches and Restart 仅重置索引与 UI 状态;清模块缓存用 go clean -modcache;清构建缓存用 go clean -cache;二者互不影响,且不可混用。

GoLand 本身不管理 Go 的模块或构建缓存,清理缓存必须分清“IDE 缓存”和“Go 工具链缓存”——混着清,要么白干,要么误删项目依赖。
GoLand 自身索引与UI缓存怎么清
这是最常被误操作的部分:很多人以为点“File → Invalidate Caches and Restart”就能解决 go build 报错或跳转失效,其实它只影响 IDE 的代码索引、历史记录、UI 状态等,跟 go.mod、$GOCACHE 完全无关。
- 适用场景:补全卡顿、跳转跳到旧文件、结构视图不刷新、设置项丢失
- 操作路径:菜单栏
File → Invalidate Caches and Restart… → Invalidate and Restart - 注意:
Invalidate and Restart不会删你项目里的go.sum或vendor/,但会重扫整个工作区——大项目可能需要 1–3 分钟重建索引 - 进阶技巧:如果只是想清掉某个项目的索引(比如刚从 Git 切换分支后结构混乱),右键项目根目录 →
Reload project,比全量清缓存快得多
Go 模块缓存(modcache)必须用 go clean -modcache
GoLand 不提供图形化按钮执行这个操作,也不能靠删文件夹替代。手动删 $GOPATH/pkg/mod 下的子目录容易漏文件、留校验残迹,反而引发 checksum mismatch 或 unknown revision 错误。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 正确命令:
go clean -modcache—— 它会安全删除pkg/mod/cache/download下所有 .zip/.info/.ziphash 文件,以及解压后的源码目录 - 不会动:
go.mod、go.sum、vendor/、GOPROXY设置 - 执行后首次
go build会变慢,加-v可看真实拉包地址:go build -v ./cmd/server - 磁盘空间告急时可先查占用:
du -sh $GOPATH/pkg/mod,超 5GB 就值得清
Go 构建缓存($GOCACHE)要不要一起清
$GOCACHE 存的是编译中间产物(.a 文件、汇编缓存等),默认在 $HOME/Library/Caches/go-build(macOS)、$HOME/AppData/Local/go-build(Windows)或 $HOME/.cache/go-build(Linux)。它和 modcache 是两套独立机制,清一个不影响另一个。
- 清它的典型信号:
go build报奇怪的 internal compiler error、或反复修改代码后输出没更新(疑似缓存污染) - 命令:
go clean -cache(推荐)或手动rm -rf $GOCACHE - 注意:某些 CI 流水线会显式设置
GOCACHE=/tmp/go-cache,此时要清对应路径,不是默认值 - 性能提示:清空后首次构建会慢 20%–40%,但后续恢复;长期不清可能导致
$GOCACHE占满/tmp(尤其 Ubuntu 默认/tmp是内存盘)
真正容易被忽略的是:GoLand 的 Terminal 默认复用系统 shell 环境变量,但如果你在 IDE 内置 Terminal 执行 go clean -modcache 后立刻点绿色三角运行,它可能仍用旧缓存编译——因为 GoLand 的 Run Configuration 默认启用 “Use module cache”,实际行为取决于 go env GOMODCACHE 当前值,而非你刚清过的目录。遇到这种情况,关掉 Run Configuration 的 “Use module cache” 勾选,或直接在 Terminal 里 go run 验证是否真清干净。










