Skip to content
Claude How To

檢查點與倒轉 (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)進行快速存取:

bash
# 開啟倒轉介面
/rewind

# 或使用別名
/checkpoint

倒轉選項 (Rewind Options)

當您執行倒轉時,會看到包含六個選項的選單:

  1. Restore code and conversation(還原程式碼與對話)-- 將檔案與訊息皆復原至該檢查點
  2. Restore conversation(還原對話)-- 僅倒轉訊息,保留當前程式碼不變
  3. Restore code(還原程式碼)-- 僅復原檔案變更,保留完整的對話歷史紀錄
  4. Summarize from here(從此處摘要)-- 將從此點往後的所有對話壓縮為 AI 生成的摘要,釋放脈絡視窗 (Context Window) 空間。所選點之前的訊息保持完好。磁碟上的檔案不會被更改。原始訊息會保留在工作階段逐字稿 (Session Transcript) 中。您可以選擇性地提供提示詞指令,讓摘要聚焦於特定主題。
  5. Summarize up to here(摘要至此處)-- 反向壓縮功能:將所選點 之前 的所有內容壓縮為 AI 生成的摘要,保持從此點往後的訊息完好。與「Summarize from here」結合使用,可為您的脈絡視窗提供雙向、標靶式的精簡 (Compaction)。磁碟上的檔案不會被更改,且原始訊息會保留在工作階段逐字稿中。
  6. 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 中內建的預設行為,不需要任何設定即可啟用。每個使用者提示詞都會自動建立一個檢查點。

有兩個設定控制檢查點行為 —— 是否進行快照擷取,以及保留時間長短:

json
{
  "fileCheckpointingEnabled": true,
  "cleanupPeriodDays": 30
}
設定 (Setting)預設值 (Default)效果 (Effect)
fileCheckpointingEnabledtrue在每次編輯前對檔案進行快照,以便 /rewind 可以還原它們。需要 v2.1.119+。在 /config 中顯示為 Rewind code (checkpoints)。環境變數同等項:CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING
cleanupPeriodDays30保留工作階段歷史紀錄與檢查點的天數

Claude Code 會為 最近的 100 個檢查點 保留快照;即使在保留時間範圍內,更舊的檢查點也會被丟棄。

v2.1.117 更新cleanupPeriodDays 現在管理磁碟上四個快取目錄的保留時間,而不僅僅是檢查點:

  • Session checkpoints(工作階段檢查點)
  • ~/.claude/tasks/ — 持久化任務列表
  • ~/.claude/shell-snapshots/ — 擷取的 Shell 環境快照
  • ~/.claude/backups/ — 滾動式的設定 / CLAUDE.md 備份

現在單一設定會在相同的天數後,統一修剪所有這四個目錄。

限制 (Limitations)

檢查點有以下限制:

  • 無法追蹤 Bash 指令變更 - 檔案系統上的 rmmvcp 等操作不會被檢查點擷取
  • 無法追蹤外部變更 - 在 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)支援有限

兩者結合使用:

  1. 使用檢查點進行快速實驗
  2. 使用 Git 提交來確定最終變更
  3. 在執行 Git 操作前建立檢查點
  4. 將成功的檢查點狀態提交至 Git

快速入門指南 (Quick Start Guide)

基本工作流程 (Basic Workflow)

  1. 正常工作 (Work normally) - Claude Code 會自動建立檢查點
  2. 想要返回? (Want to go back?) - 按兩下 Esc 或使用 /rewind
  3. 選擇檢查點 (Choose checkpoint) - 從列表中選擇要倒轉的項目
  4. 選擇要還原的內容 (Select what to restore) - 從 restore code and conversation、restore conversation、restore code、summarize from here、summarize up to here 或 cancel 中選擇
  5. 繼續工作 (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(橘色,完成收尾並倒轉)。當您看到區域轉變時,您就知道是時候使用檢查點並重新開始,而不是帶著下降的品質硬撐。

其他資源 (Additional Resources)

總結 (Summary)

檢查點 (Checkpoints) 是 Claude Code 中的一項自動功能,讓您可以安全地探索不同方法而不用擔心遺失工作內容。每個使用者提示詞都會自動建立一個新檢查點,因此您可以倒轉回工作階段中的任何先前點。

主要好處:

  • 大膽嘗試多種方法而無後顧之憂
  • 快速從錯誤中復原
  • 並排比較不同的解決方案
  • 安全地與版本控制系統整合

請記住:檢查點不能替代 Git。使用檢查點進行快速實驗,並使用 Git 進行永久性程式碼變更。


最後更新 (Last Updated):2026 年 8 月 25 日 Claude Code 版本 (Claude Code Version):2.1.245 來源 (Sources)

Released under the MIT License.