go clean -cache 是首选操作,因它安全清空 Go 1.10+ 默认启用的 $GOCACHE(存编译中间 .a 文件),全局生效、不依赖路径,不影响模块缓存和源码,清理后首次构建变慢属正常。

GoLand 本身不存“垃圾缓存”,真正占空间的是 Go 工具链生成的 $GOCACHE 和 $GOPATH/pkg/mod,清理必须用 go clean 命令,而不是删 IDE 自身目录。
为什么 go clean -cache 是首选操作
Go 1.10+ 默认启用 $GOCACHE(macOS 在 ~/Library/Caches/go-build,Windows 在 %LOCALAPPDATA%\go-build),所有 go build、go test 产生的中间 .a 文件都往里写。频繁改代码 + 开启 -race 或模糊测试时,几天就能涨到 30GB+。
-
go clean -cache直接清空整个$GOCACHE目录,不依赖当前路径,全局生效 - 它不影响
$GOPATH/pkg/mod(模块缓存)和源码,也不会删你go install出来的二进制 - 执行后首次构建变慢是正常现象——缓存重建需要时间,之后速度恢复
- 如果
go env GOCACHE输出off,这条命令什么都不会做
go clean -modcache 什么时候必须用
当你遇到 cannot find module providing package xxx、checksum mismatch,或 go list -m all 显示的版本和 go.mod 对不上,大概率是 $GOPATH/pkg/mod 里的模块缓存损坏或过期。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
-
go clean -modcache删除全部已下载模块的源码、.zip包和校验数据,但保留go.mod、go.sum和vendor/ - 执行前确认
GO111MODULE=on,否则静默无效 - 清理后首次
go build会重下所有依赖,CI 环境慎用;建议搭配go mod verify验证一致性 - 不要手动
rm -rf $GOPATH/pkg/mod——可能残留锁文件,破坏 vendor 构建
GoLand 设置里要关掉的自动行为
GoLand 默认开启 “Build project automatically”,每次保存就触发 go list 和 go build 检查,间接往 $GOCACHE 写大量临时文件,这是缓存膨胀的主因之一。
- 关闭 Settings → Go → Build Tags & Vendoring → Build project automatically
- 关掉 Settings → Tools → File Watchers 中所有与 Go 相关的 watcher
- 检查 Settings → Go → Language Server →
build.ignore配置项,避免对bin/、pkg/下文件做语义分析 - 别碰
$GOPATH/pkg/mod目录——有人顺手rm -rf $GOPATH/pkg,结果下次go run疯狂重下依赖
真正容易被忽略的是:缓存清理后空间没立刻释放,往往是因为 IDE 或终端后台进程还在占用已删除的文件句柄(Linux/macOS 常见)。关掉所有 GoLand 实例、退出 dlv 调试进程、再检查 lsof | grep go-build,才能看到真实释放量。










