必须手动删除用户配置与缓存目录,否则重装或升级后会出现补全失效、项目不识别、卡在欢迎页等问题;需逐条执行rm -rf命令清理~/Library/Application Support/JetBrains/GoLand、~/Library/Caches/JetBrains/GoLand、~/Library/Logs/JetBrains/GoLand、~/Library/Preferences/JetBrains/GoLand、com.jetbrains.goland.plist及savedState。

GoLand 用户配置与缓存目录必须手动删
重装或升级 GoLand 后行为异常(比如补全失效、项目不识别、卡在欢迎页),90% 是因为旧配置没清干净。JetBrains 不提供「一键重置」按钮,rm -rf 是唯一可靠方式。
关键路径全部位于用户主目录下,macOS 上逐条执行:
-
rm -rf ~/Library/Application\ Support/JetBrains/GoLand*—— 这里存着所有设置、插件、快捷键、主题 -
rm -rf ~/Library/Caches/JetBrains/GoLand*—— 缓存索引和编译产物,不清它,新版本可能复用损坏的 AST 树 -
rm -rf ~/Library/Logs/JetBrains/GoLand*—— 日志本身不干扰功能,但占空间且干扰问题排查 -
rm -rf ~/Library/Preferences/JetBrains/GoLand*—— 偏好设置残留会导致 SDK 路径错乱、GOROOT 识别失败 -
rm -f ~/Library/Preferences/com.jetbrains.goland.plist—— 系统级启动参数,影响沙盒行为 -
rm -rf ~/Library/Saved\ Application\ State/com.jetbrains.goland.savedState—— 记录上次窗口状态,有时会锁死 UI 初始化
注意:GoLand* 通配符能匹配 GoLand2025.1、GoLand2026.1.1 等所有版本,不用猜具体名。
Go build 缓存与模块缓存要分开处理
go clean -cache 和 go clean -modcache 解决的是完全不同的问题,混用会白忙活。
go clean -cache 清的是 $GOCACHE(默认 ~/Library/Caches/go-build),里面是编译中间文件(.a)。它在以下情况必须清:
- 切换了
CGO_ENABLED值(比如从0改回1),否则链接阶段可能静默失败 - 升级 Go 版本后构建报奇怪符号错误,旧缓存未自动失效
-
GOOS或GOARCH变更后行为异常(如本地编译完却无法在 Linux 容器里跑)
go clean -modcache 清的是 $GOPATH/pkg/mod,即所有下载解压过的模块源码和 zip 包。它适合这些场景:
-
go list -m all显示的版本和go.mod不一致,尤其在 git 分支切换后 - 遇到
invalid version: unknown revision,但远程 tag 明明存在 - 磁盘
$HOME/go/pkg/mod占用超 10GB,而项目实际依赖不到 50 个模块 - 启用了私有代理(如 Nexus)后频繁
checksum mismatch,说明缓存校验数据和代理返回不匹配
二者互不影响:-modcache 不动 $GOCACHE,-cache 也不碰模块源码。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
Toolbox 安装的 GoLand 更容易留坑
如果你用 JetBrains Toolbox 安装过 GoLand,卸载时只点「Uninstall」按钮远远不够——Toolbox 会保留配置目录,下次重装仍自动加载。
正确流程是两步:
- 先在 Toolbox GUI 中删实例:Settings → Instances → 找到 GoLand → 点垃圾桶 → 选「Uninstall」
- 再手动清配置:执行上面第一部分的所有
rm -rf ~/Library/...命令
漏掉第二步,你会发现新装的 GoLand 一打开就套用两年前的深色主题、错误的 GOPATH、甚至已废弃的插件。Toolbox 的「重装」本质只是重新挂载旧配置,不是真重装。
日常维护别碰 go clean -i
go clean -i 本意是删当前目录 main 包安装生成的二进制(如 $GOBIN/mytool)及其关联的 .a 文件,但它有个硬伤:只认「当前目录下有 main 包」。
比如你在 ~/proj/cmd/mytool 执行过 go install,生成了 $GOBIN/mytool;之后 cd 到 ~/proj 再跑 go clean -i,它不会删任何东西——因为 ~/proj 下没有 main 函数。
真正想删已安装二进制,直接 rm $GOBIN/mytool 更稳。除非你明确在 cmd/xxx 目录下操作,否则 go clean -i 大概率什么都没干,还让你误以为清理成功。










