會話與歷史
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。