檢查點與倒轉 (Checkpoints and Rewind)
檢查點 (Checkpoints) 允許您儲存對話狀態並倒轉 (Rewind) 回 Claude Code 工作階段 (Session) 中的先前時間點。這對於探索不同方法、從錯誤中復原或比較替代解決方案來說非常寶貴。
概覽 (Overview)
檢查點 (Checkpoints) 允許您儲存對話狀態並倒轉 (Rewind) 回先前時間點,實現安全的實驗並探索多種方法。它們是您對話狀態的快照 (Snapshots),包含:
- 交流過的所有訊息 (Messages)
- 所做的檔案修改 (File Modifications)
- 工具使用歷史紀錄 (Tool Usage History)
- 工作階段脈絡 (Session Context)
在探索不同方法、從錯誤中復原或比較替代解決方案時,檢查點具有無可比擬的價值。
核心概念 (Key Concepts)
| 概念 (Concept) | 說明 (Description) |
|---|---|
| 檢查點 (Checkpoint) | 對話狀態的快照,包含訊息、檔案與脈絡 |
| 倒轉 (Rewind) | 返回之前的檢查點,捨棄後續的變更 |
| 分支點 (Branch Point) | 用於探索多種方法的檢查點起始點 |
存取檢查點 (Accessing Checkpoints)
您可透過兩種主要方式存取與管理檢查點:
使用鍵盤快速鍵 (Keyboard Shortcut)
連按兩下 Esc 鍵 (Esc + Esc) 即可開啟檢查點介面並瀏覽已儲存的檢查點。
使用斜線指令 (Slash Command)
使用 /rewind 指令(別名:/checkpoint)進行快速存取:
# 開啟倒轉介面
/rewind
# 或使用別名
/checkpoint倒轉選項 (Rewind Options)
當您執行倒轉時,會看到包含六個選項的選單:
- Restore code and conversation(還原程式碼與對話)-- 將檔案與訊息皆復原至該檢查點
- Restore conversation(還原對話)-- 僅倒轉訊息,保留當前程式碼不變
- Restore code(還原程式碼)-- 僅復原檔案變更,保留完整的對話歷史紀錄
- Summarize from here(從此處摘要)-- 將從此點往後的所有對話壓縮為 AI 生成的摘要,釋放脈絡視窗 (Context Window) 空間。所選點之前的訊息保持完好。磁碟上的檔案不會被更改。原始訊息會保留在工作階段逐字稿 (Session Transcript) 中。您可以選擇性地提供提示詞指令,讓摘要聚焦於特定主題。
- Summarize up to here(摘要至此處)-- 反向壓縮功能:將所選點 之前 的所有內容壓縮為 AI 生成的摘要,保持從此點往後的訊息完好。與「Summarize from here」結合使用,可為您的脈絡視窗提供雙向、標靶式的精簡 (Compaction)。磁碟上的檔案不會被更改,且原始訊息會保留在工作階段逐字稿中。
- Never mind(取消)-- 取消並返回當前狀態
注意:在還原對話或生成摘要後,所選訊息的原始提示詞 (Prompt) 會還原至輸入框中,方便您重新發送或編輯。
/clear不再是不可逆的邊界 (v2.1.191+):/rewind可以恢復至執行/clear之前 所建立的檢查點。清除對話不再會永久捨棄先前的狀態 —— 如果您需要早期的程式碼或脈絡,您可以跨越清除邊界倒轉回去。
自動檢查點 (Automatic Checkpoints)
Claude Code 會為您自動建立檢查點:
- 每一個使用者提示詞 (User Prompt) - 每次使用者輸入都會建立一個新的檢查點
- 持久化 (Persistent) - 檢查點會跨工作階段保留
- 自動清理 (Auto-cleaned) - 檢查點會在 30 天後自動清理
這意味著您總是可以倒轉回對話中的任何先前點,無論是幾分鐘前還是幾天前。
使用情境 (Use Cases)
| 情境 (Scenario) | 工作流程 (Workflow) |
|---|---|
| 探索方法 (Exploring Approaches) | 儲存 → 嘗試 A → 儲存 → 倒轉 → 嘗試 B → 比較 |
| 安全重構 (Safe Refactoring) | 儲存 → 重構 → 測試 → 若失敗:倒轉 |
| A/B 測試 (A/B Testing) | 儲存 → 設計 A → 儲存 → 倒轉 → 設計 B → 比較 |
| 錯誤復原 (Mistake Recovery) | 發現問題 → 倒轉至最後的良好狀態 |
使用檢查點 (Using Checkpoints)
檢視與倒轉 (Viewing and Rewinding)
按兩下 Esc 或使用 /rewind 開啟檢查點瀏覽器。您將看到帶有時間戳記的所有可用檢查點列表。選擇任何檢查點即可倒轉至該狀態。
檢查點詳細資訊 (Checkpoint Details)
每個檢查點會顯示:
- 建立時的時間戳記
- 已修改的檔案
- 對話中的訊息數量
- 已使用的工具
實務範例 (Practical Examples)
範例 1:探索不同方法 (Exploring Different Approaches)
User: Let's add a caching layer to the API
Claude: I'll add Redis caching to your API endpoints...
[Makes changes at checkpoint A]
User: Actually, let's try in-memory caching instead
Claude: I'll rewind to explore a different approach...
[User presses Esc+Esc and rewinds to checkpoint A]
[Implements in-memory caching at checkpoint B]
User: Now I can compare both approaches範例 2:從錯誤中復原 (Recovering from Mistakes)
User: Refactor the authentication module to use JWT
Claude: I'll refactor the authentication module...
[Makes extensive changes]
User: Wait, that broke the OAuth integration. Let's go back.
Claude: I'll help you rewind to before the refactoring...
[User presses Esc+Esc and selects the checkpoint before the refactor]
User: Let's try a more conservative approach this time範例 3:安全的實驗 (Safe Experimentation)
User: Let's try rewriting this in a functional style
[Creates checkpoint before experiment]
Claude: [Makes experimental changes]
User: The tests are failing. Let's rewind.
[User presses Esc+Esc and rewinds to the checkpoint]
Claude: I've rewound the changes. Let's try a different approach.範例 4:分支方法 (Branching Approaches)
User: I want to compare two database designs
[Takes note of checkpoint - call it "Start"]
Claude: I'll create the first design...
[Implements Schema A]
User: Now let me go back and try the second approach
[User presses Esc+Esc and rewinds to "Start"]
Claude: Now I'll implement Schema B...
[Implements Schema B]
User: Great! Now I have both schemas to choose from檢查點保留機制 (Checkpoint Retention)
Claude Code 會自動管理您的檢查點:
- 每次輸入使用者提示詞時都會自動建立檢查點
- 舊檢查點最多保留 30 天
- 檢查點會自動清理,避免無限制的儲存空間增長
工作流程模式 (Workflow Patterns)
用於探索的分支策略 (Branching Strategy for Exploration)
當探索多種方法時:
1. Start with initial implementation → Checkpoint A
2. Try Approach 1 → Checkpoint B
3. Rewind to Checkpoint A
4. Try Approach 2 → Checkpoint C
5. Compare results from B and C
6. Choose best approach and continue安全重構模式 (Safe Refactoring Pattern)
當進行重大變更時:
1. Current state → Checkpoint (auto)
2. Start refactoring
3. Run tests
4. If tests pass → Continue working
5. If tests fail → Rewind and try different approach最佳實踐 (Best Practices)
由於檢查點是自動建立的,您可以專注於工作,無需擔心手動儲存狀態。不過,請牢記以下做法:
有效使用檢查點 (Using Checkpoints Effectively)
✅ 建議做法 (Do):
- 在倒轉前檢視可用的檢查點
- 想探索不同方向時使用倒轉
- 保留檢查點以比較不同的解決方案
- 了解每個倒轉選項的功能(還原程式碼與對話、還原對話、還原程式碼或摘要)
❌ 避免做法 (Don't):
- 單純依賴檢查點來進行程式碼保存
- 期望檢查點能追蹤外部檔案系統的變更
- 將檢查點作為 Git 提交 (Commits) 的替代品
設定 (Configuration)
檢查點是 Claude Code 中內建的預設行為,不需要任何設定即可啟用。每個使用者提示詞都會自動建立一個檢查點。
有兩個設定控制檢查點行為 —— 是否進行快照擷取,以及保留時間長短:
{
"fileCheckpointingEnabled": true,
"cleanupPeriodDays": 30
}| 設定 (Setting) | 預設值 (Default) | 效果 (Effect) |
|---|---|---|
fileCheckpointingEnabled | true | 在每次編輯前對檔案進行快照,以便 /rewind 可以還原它們。需要 v2.1.119+。在 /config 中顯示為 Rewind code (checkpoints)。環境變數同等項:CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING |
cleanupPeriodDays | 30 | 保留工作階段歷史紀錄與檢查點的天數 |
Claude Code 會為 最近的 100 個檢查點 保留快照;即使在保留時間範圍內,更舊的檢查點也會被丟棄。
v2.1.117 更新:
cleanupPeriodDays現在管理磁碟上四個快取目錄的保留時間,而不僅僅是檢查點:
- Session checkpoints(工作階段檢查點)
~/.claude/tasks/— 持久化任務列表~/.claude/shell-snapshots/— 擷取的 Shell 環境快照~/.claude/backups/— 滾動式的設定 / CLAUDE.md 備份現在單一設定會在相同的天數後,統一修剪所有這四個目錄。
限制 (Limitations)
檢查點有以下限制:
- 無法追蹤 Bash 指令變更 - 檔案系統上的
rm、mv、cp等操作不會被檢查點擷取 - 無法追蹤外部變更 - 在 Claude Code 之外(在您的編輯器、終端機等)所做的變更不會被擷取
- 不能替代版本控制 - 對程式碼庫進行永久性、可審計的變更請使用 Git
v2.1.216 更新:
/rewind不再透過追蹤路徑上的符號連結 (Symlinks) 或硬連結 (Hard Links) 還原或刪除檔案。如果被追蹤的路徑解析為符號連結或硬連結,倒轉會跳過該路徑而非追蹤連結,並報告因此原因跳過的路徑數量。
疑難排解 (Troubleshooting)
檢查點遺失 (Missing Checkpoints)
問題 (Problem):找不到預期的檢查點
解決方案 (Solution):
- 檢查檢查點是否已被清除
- 檢查磁碟空間
- 確保
cleanupPeriodDays設定得夠高(預設:30 天)
倒轉失敗 (Rewind Failed)
問題 (Problem):無法倒轉至檢查點
解決方案 (Solution):
- 確保沒有未提交的變更發生衝突
- 檢查檢查點是否損壞
- 嘗試倒轉至不同的檢查點
與 Git 的整合 (Integration with Git)
檢查點補充了 Git 的不足(但無法取代 Git):
| 特性 (Feature) | Git | 檢查點 (Checkpoints) |
|---|---|---|
| 範圍 (Scope) | 檔案系統 | 對話 + 檔案 |
| 持久性 (Persistence) | 永久 | 基於工作階段 |
| 粒度 (Granularity) | 提交 (Commits) | 任何時間點 |
| 速度 (Speed) | 較慢 | 即時 |
| 分享 (Sharing) | 支援 | 有限 |
兩者結合使用:
- 使用檢查點進行快速實驗
- 使用 Git 提交來確定最終變更
- 在執行 Git 操作前建立檢查點
- 將成功的檢查點狀態提交至 Git
快速入門指南 (Quick Start Guide)
基本工作流程 (Basic Workflow)
- 正常工作 (Work normally) - Claude Code 會自動建立檢查點
- 想要返回? (Want to go back?) - 按兩下
Esc或使用/rewind - 選擇檢查點 (Choose checkpoint) - 從列表中選擇要倒轉的項目
- 選擇要還原的內容 (Select what to restore) - 從 restore code and conversation、restore conversation、restore code、summarize from here、summarize up to here 或 cancel 中選擇
- 繼續工作 (Continue working) - 您已回到該時間點
鍵盤快速鍵 (Keyboard Shortcuts)
Esc+Esc- 開啟檢查點瀏覽器/rewind- 存取檢查點的替代方式/checkpoint-/rewind的別名
掌握倒轉時機:脈絡監控 (Knowing When to Rewind: Context Monitoring)
檢查點讓您可以返回過去 —— 但您如何知道 何時 該返回?隨著對話增長,Claude 的脈絡視窗 (Context Window) 會被填滿,模型品質也會在不知不覺中下降。您可能會在未察覺的情況下接受來自半盲目模型的程式碼。
cc-context-stats 透過在 Claude Code 狀態列中新增即時脈絡區域 (Context Zones) 解決了這個問題。它能追蹤您在脈絡視窗中的位置 —— 從 Plan(綠色,安全進行規劃與編碼)到 Code(黃色,避免開始新規劃)再到 Dump(橘色,完成收尾並倒轉)。當您看到區域轉變時,您就知道是時候使用檢查點並重新開始,而不是帶著下降的品質硬撐。
相關概念 (Related Concepts)
- 進階功能 (Advanced Features) - 規劃模式 (Planning mode) 與其他進階能力
- 記憶管理 (Memory Management) - 管理對話歷史紀錄與脈絡
- 斜線指令 (Slash Commands) - 使用者調用的快捷方式
- 鉤子 (Hooks) - 事件驅動的自動化
- 外掛程式 (Plugins) - 打包的擴充套件
其他資源 (Additional Resources)
- 官方檢查點文件 (Official Checkpointing Documentation)
- 進階功能指南 (Advanced Features Guide) - 延伸思考 (Extended thinking) 與其他能力
總結 (Summary)
檢查點 (Checkpoints) 是 Claude Code 中的一項自動功能,讓您可以安全地探索不同方法而不用擔心遺失工作內容。每個使用者提示詞都會自動建立一個新檢查點,因此您可以倒轉回工作階段中的任何先前點。
主要好處:
- 大膽嘗試多種方法而無後顧之憂
- 快速從錯誤中復原
- 並排比較不同的解決方案
- 安全地與版本控制系統整合
請記住:檢查點不能替代 Git。使用檢查點進行快速實驗,並使用 Git 進行永久性程式碼變更。
最後更新 (Last Updated):2026 年 8 月 25 日 Claude Code 版本 (Claude Code Version):2.1.245 來源 (Sources):
- https://code.claude.com/docs/en/checkpointing
- https://code.claude.com/docs/en/settings
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117
- https://code.claude.com/docs/en/model-config相容模型 (Compatible Models):Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5
