你在 Gemini Canvas 里改一篇长稿。最新一版把你要的一段删过头了,于是点版本历史下拉框选上一版。编辑器闪了一下旧文本,又跳回坏的版本。或者下拉框里显示三个版本,但其中两个内容一模一样。或者 Revert 自称成功了,文档却没变。Canvas 的版本历史本地跑、异步同步到 Google 服务器——本地缓存和服务器状态不一致时,Revert 就打到了错的目标。
本文说怎么找回你真正想要的那个版本,以及怎么避免以后再被这个 bug 吞稿。
常见原因
1. 本地缓存和服务器没对齐
Canvas 每隔几秒会自动存进 IndexedDB,然后稍慢地推到 Google 后端。你在这个同步窗口里点 Revert,下拉框显示的是过期列表——你要的版本在服务器上有,本地索引里没有。
如何判断:刷新页面(Cmd/Ctrl+R)重新打开文档。版本列表跟刚才不一样,就是本地缓存过期了。
2. 多个浏览器标签同时在编辑
同一个 Canvas 文档开了两个标签,两边各自自动保存。“最新”版是看哪个标签存得最近,一个标签里 Revert 会和另一个标签里 Revert 互相打架。
如何判断:只留一个显示这个文档的标签。如果不记得开过多个,去 History > Recently Closed 看一眼。
3. Canvas 版本历史只保留最近的
Canvas 大概保留最近 30 个版本,再老的会被清掉。你要的版本是昨天的,但之后你又改了 40 次,那个版本就没了。
如何判断:版本历史列表整个滑到底。只剩近期时间戳就说明老版本被清了。
4. 浏览器扩展把编辑器状态搞坏了
Grammarly、LanguageTool、任何往富文本编辑器里注入 DOM 的扩展都可能干扰 Canvas 的 diff 引擎。Revert 其实生效了,但扩展又把它的 overlay 叠回去,看上去没变。
如何判断:在无插件的隐身窗口里打开文档。那里 Revert 正常就是扩展的锅。
5. 文档在多人协作编辑
某个协作者(或你忘掉的另一个会话)在并发编辑。你 Revert 完,200 毫秒后对方挂着的编辑又应用上来。
如何判断:看右上角的协作头像。有别的头像就有人在文档里。
6. Canvas 最近一次发布有 bug
Gemini Canvas 每周发版。偶尔一次发布会把版本历史搞回归。fix 一般几天内会上,但中间这几天 Revert 就是不灵。
如何判断:在 Google 支持 / 社区里搜最近两周的 “Gemini Canvas revert”。短期内多个报告就是已知回归。
动手前先确认
- 发现问题立刻停止编辑——每次新编辑都可能把你要的老版本挤掉。
- 文档只留一个标签,其它都关掉。
- 看看文档有没有协作者。
需要收集的信息
- 大概的时间戳:你做丢失的那次编辑、你发现问题的时间。
- 文档是私有还是共享(共享给谁)。
- 浏览器 + 版本 + 装了哪些扩展。
- 版本历史下拉框的截图。
- 你是免费 Gemini 还是 Gemini Advanced(保留深度不同)。
一步步修复
Step 1:强制干净重载,拿服务器侧的列表
Cmd/Ctrl + Shift + R (硬刷新,跳过缓存)
还是没刷新列表的话,到隐身窗口里重新打开文档。隐身没有 IndexedDB 缓存,会从服务器拉一份新的历史。
Step 2:动手前先把每个可能的版本都导出来
再点 Revert 之前,把下拉框里每个版本都导出:
- 打开第 1 个版本。
- 全选 > 复制。
- 粘贴到本地文本文件,命名
canvas-v1.txt。 - v2、v3、… vN 重复。
笨办法,但能给你一个离线的真值,即使 Canvas 再吃掉更多历史也不怕。
Step 3:在隐身会话里 Revert
到隐身窗口点 Revert 到你想要的版本。因为缓存是新鲜的,Revert 会打到正确的版本。生效了之后回正常窗口硬刷新,那个改动应该已经在了。
Step 4:关掉可疑扩展再试
回主浏览器:
- Settings > Extensions。
- 关掉 Grammarly、LanguageTool、广告拦截,任何会改 DOM 的扩展。
- 刷新 Canvas 文档。
- 重试 Revert。
现在 Revert 灵了,就一个一个开回扩展,找哪个把 Canvas 搞坏的。
Step 5:从导出版本手动重建
Revert 还是不行:
- 打开坏掉的文档。
- 全选 > 删除。
- 把 Step 2 导出的那个版本粘贴回去。
- 保存(Canvas 会自动保存)。
等于手动 Revert 了一次,绕开坏掉的历史。
Step 6:反馈给 Google,期间用 Docs 兜底
上面都试了 bug 还能稳定复现:
- Gemini 里点 Help (?) > Send feedback。
- 主题写 “Canvas revert broken”,附上版本列表和坏状态的截图。
- 修复推送之前,重要编辑后顺手 Share > Export to Google Docs。Docs 自己的版本历史靠谱得多。
验证
- 打开文档,点版本下拉——版本数量和时间戳现在看起来对了。
- Revert 到一个已知好的版本;刷新页面后编辑器还停在那个版本。
- 用第二个浏览器打开文档,确认 revert 后的版本在服务器上也是这样,不只是本地。
- 把当前文档和 Step 2 导出的目标文件 diff 一下——内容应该匹配你想要的版本。
长期预防
- 重要稿件每次较大改动后 Export to Google Docs;Docs 比 Canvas 历史更耐久。
- Canvas 文档只在一个标签里开,重复的立刻关。
- 在 Canvas 写稿时关掉会往富文本编辑器里塞 overlay 的扩展。
- 协作文档约定一次只一个人改;Canvas 并发处理比 Docs 弱。
- 定期 Share > Copy as Markdown 把内容导成本地文件,留一个离线 checkpoint。
常见坑
- 连续快速点 Revert——每次点都可能挤掉一个版本,越点越难恢复。
- 不展开下拉框就信版本数量;session 之间会静默清理。
- 网络不稳时编辑;不完整的保存会产出内容损坏的”幽灵”版本。
- Revert 成功后立刻关文档;改动可能还没同步到服务器。
- 以为 Canvas 免费版和 Advanced 历史深度一样——Advanced 保留得更多。
FAQ
Q:Canvas 保留多少个版本? A:免费大约 30 个,Advanced 更多——Google 没公布精确数字。当成”最近的几次编辑”用就行。
Q:Canvas 支持离线编辑吗? A:部分支持——近期自动保存在 IndexedDB 里,但大多数功能要联网。离线改的内容可能同步得不干净。
Q:被整个删掉的 Canvas 文档能恢复吗? A:30 天内去 Google Drive 回收站找。再之后基本恢复不了。
Q:Revert 和 Undo 有什么不同? A:不同——Undo(Cmd+Z)回放当前会话的本地编辑历史。Revert 跳到一个之前保存过的版本。当前会话内的近期改动用 Undo;老状态用 Revert。