goland 不会自动保存未提交的编辑内容,而是通过文件标签右上角星号标识未保存状态;关闭时弹窗提醒,误选“不保存”将不可逆丢失;local history 可恢复部分丢弃内容;git 状态与保存状态无关;建议关闭自动保存功能。

GoLand 不会自动保存未提交的编辑内容到磁盘,但提供了明确的视觉提示和操作入口来识别、恢复或丢弃这些更改——关键在于理解它如何标记“未保存”状态,而不是依赖某个叫“未保存代码”的独立视图。
编辑器标签右上角的星号表示未保存
这是最直接的判断依据:每个打开的文件标签右上角出现 *,说明该文件有本地修改但尚未保存(即未写入磁盘)。这个星号只反映「是否调用过 Ctrl+S 或 Cmd+S」,与 Git 状态无关。即使你已 git add 过,只要没在 IDE 里保存,星号依然存在。
- 关闭带星号的标签页时,GoLand 会弹窗询问是否保存 —— 这是唯一一次主动提醒你存在未保存内容的机会
- 如果你误点了「不保存」,所有未提交的编辑将立即丢失,且无法通过
Ctrl+Z撤销(因为没进编辑历史栈) - 星号不会出现在「临时文件」或「scratch buffer」上,它们默认不参与保存流程
使用 Local History 查看被覆盖或丢弃的修改
Local History 是 GoLand 自动维护的本地快照机制,每 10 分钟、每次显式保存、每次 Git 操作前后都会记录一次。它能帮你找回「已保存但后来又被改掉」的内容,甚至包括你点过「不保存」后丢失的那部分。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 右键编辑器任意位置 → 选择
Local History→Show History - 时间线里会列出多个版本,右侧 Diff 窗格显示与当前版本的差异
- 注意:Local History 默认保留 5 天,且仅对项目内文件生效;
.idea目录或临时文件不在此列 - 如果某次「不保存」后立刻关机,而 Local History 还没来得及写入磁盘,这部分内容可能不可恢复
对比 Git 工作区与暂存区,确认哪些是真·未保存
很多人混淆「未保存」和「未提交」。GoLand 的「未保存」纯指未写入磁盘;而 Git 的 git status 显示的是工作区与暂存区/HEAD 的差异。两者交集才是你需要警惕的真实风险点。
- 打开
Git工具窗口(Alt+9),查看Local Changes标签页 - 灰色图标(如
Modified旁带锁形符号)表示该文件已保存但未git add;红色图标表示未保存 + 未暂存 - 若文件既没星号又不在
Local Changes列表中,说明它已保存且 Git 认为无变化 -
Ctrl+K打开提交窗口时,勾选「Include non-versioned files」才能看到未被 Git 跟踪但已保存的新文件
真正容易被忽略的是:GoLand 的自动保存开关(Settings | Appearance & Behavior | System Settings | Synchronization | Save files on frame deactivation)一旦开启,会在你切出 IDE 时自动保存所有带星号的文件——这意味着你以为的「未保存状态」可能在你切换微信的瞬间就消失了。建议关闭它,把保存行为完全交给手动控制。










