会话与历史
Gemini CLI 会话管理:resume、list sessions、delete session、/chat save、/chat resume、/chat share 和项目作用域。
Gemini CLI 可以恢复之前的 session,也可以在交互式会话里保存和恢复聊天状态。会话通常和当前项目目录相关。
记住项目作用域:在一个项目里保存的会话,不一定能在另一个目录直接看到。恢复前先确认你在哪个项目目录。
CLI 层恢复
常见恢复方式包括 gemini -r "latest"、gemini -r "latest" "继续检查 type errors",也可以用具体 session id 恢复指定会话。
也可以列出和删除 session:
列出 session 用 gemini --list-sessions,删除 session 用 gemini --delete-session 3。
| 动作 | 命令 | 适合场景 |
|---|---|---|
| 恢复最近会话 | gemini -r latest | 刚退出、目录没变、继续同一任务 |
| 恢复并追加任务 | gemini -r latest "继续跑测试" | 上下文沿用,但要给新的明确目标 |
| 查看历史会话 | gemini --list-sessions | 不确定该恢复哪一个 |
| 删除旧会话 | gemini --delete-session <id> | 清理无用或敏感历史 |
latest 很方便,但也最容易误恢复。跨项目、多终端、多 agent 并行时,优先用 session id 或 tag,而不是盲用最近一次。
交互式保存
交互式会话里常用 /chat save refactor-auth、/chat list、/chat resume refactor-auth、/chat delete refactor-auth。
/chat 和 /resume 在官方 command reference 中指向同一组 session/checkpoint 动作。
建议 tag 用任务名,不用“今天”“fix”“test”这类无法回忆的名字:
/chat save auth-middleware-typecheck
/chat save docs-gemini-cli-web-tools好 tag 应该能回答三件事:项目、任务、当前阶段。以后恢复时,你不需要重新猜它属于哪条线。
分享会话
分享可以导出为 Markdown 或 JSON,例如 /chat share file.md、/chat share file.json。
分享前必须脱敏。会话里可能包含文件路径、代码、报错、环境变量名、业务信息、账号线索。
使用建议
- 大任务开始前保存 tag。
- 切目录前确认 session 作用域。
- 分享会话前先读一遍导出的 Markdown/JSON。
- 不要把含密钥或私有代码的 session 公开贴出去。
恢复前检查
恢复 session 前,先把项目状态重新拉回现实:
- 看当前目录是否正确。
- 看
git status是否有别人或其他 agent 的改动。 - 看依赖、分支、环境变量是否和旧会话一致。
- 让 Gemini CLI 重新读取关键文件,不要完全依赖旧上下文。
Before continuing, inspect the current git status and re-read the files you plan to touch.
Do not assume the previous session state is still accurate.这一步在多人协作、长时间中断、自动化任务恢复时尤其重要。session 保存的是对话上下文,不是项目真实状态的永久证明。
什么时候不用恢复
会话恢复适合延续上下文,但不适合用来掩盖项目状态变化。如果代码已经被别人改过、依赖升级过、分支切换过,恢复旧 session 后要先让 Gemini CLI 重新读取当前文件和 git status。旧会话里的判断可能已经过期。
验收方式
保存一个测试会话,退出后用 tag 和 latest 分别恢复,确认目录作用域符合预期。导出 Markdown/JSON 后,用搜索检查是否包含 token、邮箱、本机绝对路径、私有 repo 名或客户信息。
接下来去哪
任务规划
继续看复杂任务如何先列计划、拆步骤、设验证点。
Checkpoint 与 rewind
如果要恢复文件修改前状态,继续看 checkpoint 和 /restore。
Settings
需要长期固定 session、checkpoint、工具权限等行为时,继续看 settings.json。