8 8
9Claude Code は、作業中に Claude が行ったファイルエディットを自動的に追跡し、変更をすばやく取り消したり、問題が発生した場合に以前の状態に巻き戻したりできます。9Claude Code は、作業中に Claude が行ったファイルエディットを自動的に追跡し、変更をすばやく取り消したり、問題が発生した場合に以前の状態に巻き戻したりできます。
10 10
11<h2 id="how-checkpoints-work">11## チェックポイントの仕組み
12 チェックポイントの仕組み
13</h2>
14 12
15Claude で作業する際、チェックポイント機能は送信する各プロンプトがターンを開始する前のコード状態を自動的にキャプチャします。13Claude で作業する際、チェックポイント機能は送信する各プロンプトがターンを開始する前のコード状態を自動的にキャプチャします。
16 14
17<h3 id="automatic-tracking">15### 自動追跡
18 自動追跡
19</h3>
20 16
21Claude Code は、ファイル編集ツールで行われたすべての変更を追跡します。17Claude Code は、ファイル編集ツールで行われたすべての変更を追跡します。
22 18
25* チェックポイントはセッションと共に保存されるため、再開したセッションでも `/rewind` で戻ることができます21* チェックポイントはセッションと共に保存されるため、再開したセッションでも `/rewind` で戻ることができます
26* Claude Code は[保持期間スイープ](/docs/ja/claude-directory#cleaned-up-automatically)でセッションのファイルスナップショットを削除します。デフォルトではセッションが最後に保存されてから約 30 日後です。スナップショットが削除されたチェックポイントに巻き戻すと、[`No files were restored`](/docs/ja/errors#no-files-were-restored) エラーで失敗する可能性があります。スナップショットをより長く保持するには、[`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) を設定してください。22* Claude Code は[保持期間スイープ](/docs/ja/claude-directory#cleaned-up-automatically)でセッションのファイルスナップショットを削除します。デフォルトではセッションが最後に保存されてから約 30 日後です。スナップショットが削除されたチェックポイントに巻き戻すと、[`No files were restored`](/docs/ja/errors#no-files-were-restored) エラーで失敗する可能性があります。スナップショットをより長く保持するには、[`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) を設定してください。
27 23
28<h3 id="rewind-and-summarize">24### 巻き戻しと要約
29 巻き戻しと要約
30</h3>
31 25
32`/rewind` を実行するか、プロンプト入力が空の状態で `Esc` キーを 2 回押して、巻き戻しメニューを開きます。26`/rewind` を実行するか、プロンプト入力が空の状態で `Esc` キーを 2 回押して、巻き戻しメニューを開きます。
33 27
34<Note>28> [!NOTE]
35 プロンプト入力にテキストが含まれている場合、ダブル `Esc` はメニューを開く代わりにテキストをクリアします。クリアされたテキストは入力履歴に保存されるため、巻き戻しメニューを終了した後に `Up` キーを押して呼び出すことができます。29>
36</Note>30> プロンプト入力にテキストが含まれている場合、ダブル `Esc` はメニューを開く代わりにテキストをクリアします。クリアされたテキストは入力履歴に保存されるため、巻き戻しメニューを終了した後に `Up` キーを押して呼び出すことができます。
37 31
38巻き戻しメニューには、セッション中に送信したプロンプトが一覧表示されます。操作したいポイントを選択してから、アクションを選択します。32巻き戻しメニューには、セッション中に送信したプロンプトが一覧表示されます。操作したいポイントを選択してから、アクションを選択します。
39 33
50 44
51「ここまで要約」を選択すると、会話の最後に留まり、入力フィールドは空になります。どちらの要約オプションでも、圧縮されたメッセージがあった会話内に **要約された会話** マーカーが表示されます。45「ここまで要約」を選択すると、会話の最後に留まり、入力フィールドは空になります。どちらの要約オプションでも、圧縮されたメッセージがあった会話内に **要約された会話** マーカーが表示されます。
52 46
53<h4 id="rewind-past-a-cleared-conversation">47#### クリアされた会話を超えて巻き戻す
54 クリアされた会話を超えて巻き戻す
55</h4>
56 48
57同じ Claude Code プロセスの前の段階で `/clear` を実行した場合、巻き戻しメニューはリストの最上部に `/resume <session-id>(前のセッション)` というラベルの追加エントリを表示します。これを選択して、`/clear` が実行される前にアクティブだった会話を再開します。このエントリは Claude Code を終了するか別のセッションを再開するまで利用可能です。49同じ Claude Code プロセスの前の段階で `/clear` を実行した場合、巻き戻しメニューはリストの最上部に `/resume <session-id>(前のセッション)` というラベルの追加エントリを表示します。これを選択して、`/clear` が実行される前にアクティブだった会話を再開します。このエントリは Claude Code を終了するか別のセッションを再開するまで利用可能です。
58 50
59<h4 id="guide-a-summary">51#### 要約をガイドする
60 要約をガイドする
61</h4>
62 52
63要約はディスク上のファイルを変更せず、元のメッセージはセッショントランスクリプトに保持されるため、Claude は詳細を参照できます。要約が焦点を当てるべき内容をガイドするには、矢印キーで **要約** オプションをハイライトし、行が **コンテキストを追加(オプション)** と表示されている場所に指示を入力してから、`Enter` キーを押します。数字キーでオプションを選択すると、指示なしで即座に要約されます。53要約はディスク上のファイルを変更せず、元のメッセージはセッショントランスクリプトに保持されるため、Claude は詳細を参照できます。要約が焦点を当てるべき内容をガイドするには、矢印キーで **要約** オプションをハイライトし、行が **コンテキストを追加(オプション)** と表示されている場所に指示を入力してから、`Enter` キーを押します。数字キーでオプションを選択すると、指示なしで即座に要約されます。
64 54
65<Note>55> [!NOTE]
66 要約はセッションを同じ状態に保ち、コンテキストを圧縮します。これは対象を絞った `/compact` のようなものです。元のセッションを保持したまま異なるアプローチを試したい場合は、代わりに [`/branch`](/docs/ja/sessions#branch-a-session) または `claude --continue --fork-session` を使用してください。56>
67</Note>57> 要約はセッションを同じ状態に保ち、コンテキストを圧縮します。これは対象を絞った `/compact` のようなものです。元のセッションを保持したまま異なるアプローチを試したい場合は、代わりに [`/branch`](/docs/ja/sessions#branch-a-session) または `claude --continue --fork-session` を使用してください。
68 58
69<h2 id="common-use-cases">59## 一般的なユースケース
70 一般的なユースケース
71</h2>
72 60
73チェックポイントは以下の場合に特に便利です。61チェックポイントは以下の場合に特に便利です。
74 62
77* **機能の反復**: 動作状態に戻すことができるという確信を持って変更を試験します65* **機能の反復**: 動作状態に戻すことができるという確信を持って変更を試験します
78* **コンテキストスペースの解放**: 冗長なデバッグセッションを中間地点から要約し、初期指示を保持します66* **コンテキストスペースの解放**: 冗長なデバッグセッションを中間地点から要約し、初期指示を保持します
79 67
80<h2 id="limitations">68## 制限事項
81 制限事項
82</h2>
83 69
84<h3 id="bash-command-changes-not-tracked">70### Bash コマンドの変更は追跡されません
85 Bash コマンドの変更は追跡されません
86</h3>
87 71
88チェックポイント機能は、Bash コマンドで変更されたファイルを追跡しません。たとえば、Claude Code が以下を実行する場合:72チェックポイント機能は、Bash コマンドで変更されたファイルを追跡しません。たとえば、Claude Code が以下を実行する場合:
89 73
95 79
96これらのファイル変更は巻き戻しで取り消すことはできません。Claude のファイル編集ツールで行われた直接的なファイルエディットのみが追跡されます。80これらのファイル変更は巻き戻しで取り消すことはできません。Claude のファイル編集ツールで行われた直接的なファイルエディットのみが追跡されます。
97 81
98<h3 id="subagent-edits-not-restored">82### サブエージェントの編集は復元されません
99 サブエージェントの編集は復元されません
100</h3>
101 83
102[サブエージェント](/docs/ja/sub-agents)は Claude のファイル編集ツールで編集を行いますが、Claude Code は通常、セッションのチェックポイントでこれらの編集をキャプチャしません。巻き戻しがそれらを復元するかどうかは、サブエージェントの実行方法によって異なります:84[サブエージェント](/docs/ja/sub-agents)は Claude のファイル編集ツールで編集を行いますが、Claude Code は通常、セッションのチェックポイントでこれらの編集をキャプチャしません。巻き戻しがそれらを復元するかどうかは、サブエージェントの実行方法によって異なります:
103 85
104* **フォアグラウンドフォークスキル**:[`context: fork` を持つスキル](/docs/ja/skills#run-skills-in-a-subagent)がフォアグラウンドで実行され、自分のターン中にワーキングツリーを編集するため、巻き戻しは通常どおりその編集を復元します。`background: false` を設定してフォークをフォアグラウンドで実行します。いくつかの状況([スキルページに記載](/docs/ja/skills#run-skills-in-a-subagent))では、この設定に関係なくそこで実行されます。86* **フォアグラウンドフォークスキル**:[`context: fork` を持つスキル](/docs/ja/skills#run-skills-in-a-subagent)がフォアグラウンドで実行され、自分のターン中にワーキングツリーを編集するため、巻き戻しは通常どおりその編集を復元します。`background: false` を設定してフォークをフォアグラウンドで実行します。いくつかの状況([スキルページに記載](/docs/ja/skills#run-skills-in-a-subagent))では、この設定に関係なくそこで実行されます。
105* **その他のサブエージェント**:巻き戻しで復元されるのは、会話の中で Claude がすでに編集していたファイルのみです。サブエージェントによるその他のファイルへの編集は残るため、git を使用して元に戻してください。これには、バックグラウンドで実行されるフォークスキル(デフォルト)と、バックグラウンド [`/code-review --fix`](/docs/ja/code-review-local) 実行が含まれます。87* **その他のサブエージェント**:巻き戻しで復元されるのは、会話の中で Claude がすでに編集していたファイルのみです。サブエージェントによるその他のファイルへの編集は残るため、git を使用して元に戻してください。これには、バックグラウンドで実行されるフォークスキル(デフォルト)と、バックグラウンド [`/code-review --fix`](/docs/ja/code-review-local) 実行が含まれます。
106 88
107<h3 id="external-changes-not-tracked">89### 外部の変更は追跡されません
108 外部の変更は追跡されません
109</h3>
110 90
111チェックポイント機能は、現在のセッション内で編集されたファイルのみを追跡します。Claude Code の外部で手動で行ったファイルの変更や、他の同時セッションからのエディットは、通常キャプチャされません。ただし、現在のセッションと同じファイルを変更する場合は除きます。91チェックポイント機能は、現在のセッション内で編集されたファイルのみを追跡します。Claude Code の外部で手動で行ったファイルの変更や、他の同時セッションからのエディットは、通常キャプチャされません。ただし、現在のセッションと同じファイルを変更する場合は除きます。
112 92
113<h3 id="messages-sent-mid-turn-not-checkpointed">93### ターン中に送信されたメッセージはチェックポイントされません
114 ターン中に送信されたメッセージはチェックポイントされません
115</h3>
116 94
117巻き戻しメニューでは、[Claude がまだ作業中に入力した](/docs/ja/interactive-mode#queue-messages-while-claude-works)メッセージに **No code restore**(コードの復元なし)と表示されることがあります。Claude はそのメッセージをターンの終了前に読み取っています。[チェックポイントはターンを開始するプロンプトに対して作成される](#how-checkpoints-work)ため、このメッセージ自体にはチェックポイントがありません。Claude がそのメッセージを読んだ後に行った編集は、ターンを開始したプロンプトに含まれます。95巻き戻しメニューでは、[Claude がまだ作業中に入力した](/docs/ja/interactive-mode#queue-messages-while-claude-works)メッセージに **No code restore**(コードの復元なし)と表示されることがあります。Claude はそのメッセージをターンの終了前に読み取っています。[チェックポイントはターンを開始するプロンプトに対して作成される](#how-checkpoints-work)ため、このメッセージ自体にはチェックポイントがありません。Claude がそのメッセージを読んだ後に行った編集は、ターンを開始したプロンプトに含まれます。
118 96
119メッセージ自体について何かをする必要はありません。セッションのその部分でのファイル変更を取り消すには、ターンを開始したプロンプトを選択し、**Restore code**(コードを復元)または **Restore code and conversation**(コードと会話を復元)を選択します。これにより、メッセージが到達する前の編集を含め、ターン全体での Claude のファイル編集が元に戻されます。マークされたメッセージを選択した場合も **Restore conversation**(会話を復元)は利用でき、会話をそのメッセージまで巻き戻し、ファイルはそのまま残します。97メッセージ自体について何かをする必要はありません。セッションのその部分でのファイル変更を取り消すには、ターンを開始したプロンプトを選択し、**Restore code**(コードを復元)または **Restore code and conversation**(コードと会話を復元)を選択します。これにより、メッセージが到達する前の編集を含め、ターン全体での Claude のファイル編集が元に戻されます。マークされたメッセージを選択した場合も **Restore conversation**(会話を復元)は利用でき、会話をそのメッセージまで巻き戻し、ファイルはそのまま残します。
120 98
121<h3 id="symlinked-and-hard-linked-paths-not-restored">99### シンボリックリンクおよびハードリンクパスは復元されません
122 シンボリックリンクおよびハードリンクパスは復元されません
123</h3>
124 100
125チェックポイント機能は、シンボリックリンクまたはハードリンクされたファイルを巻き戻しません。`/rewind` メニューから **Restore code**(コードを復元)または **Restore code and conversation**(コードと会話を復元)を選択すると、Claude Code は追跡されたパスのうち、シンボリックリンクまたはハードリンクであるパスをスキップし、`Restored the code, but skipped N files`(コードを復元しましたが、N 個のファイルをスキップしました)という警告を表示します。スキップされたファイルは現在の内容を保持します。セッションの変更の 1 つを取り消すには、Claude に編集を逆にするよう依頼するか、ファイルを自分で編集してください。ドットファイルマネージャーがプロジェクトにシンボリックリンクする設定ファイルと、pnpm がその場所にハードリンクするファイルの両方がこのカテゴリに該当します。101チェックポイント機能は、シンボリックリンクまたはハードリンクされたファイルを巻き戻しません。`/rewind` メニューから **Restore code**(コードを復元)または **Restore code and conversation**(コードと会話を復元)を選択すると、Claude Code は追跡されたパスのうち、シンボリックリンクまたはハードリンクであるパスをスキップし、`Restored the code, but skipped N files`(コードを復元しましたが、N 個のファイルをスキップしました)という警告を表示します。スキップされたファイルは現在の内容を保持します。セッションの変更の 1 つを取り消すには、Claude に編集を逆にするよう依頼するか、ファイルを自分で編集してください。ドットファイルマネージャーがプロジェクトにシンボリックリンクする設定ファイルと、pnpm がその場所にハードリンクするファイルの両方がこのカテゴリに該当します。
126 102
127復元がスキップするパスを確認するには、復元する前に `/debug` でデバッグログを有効にします:`~/.claude/debug/<session-id>.txt` のデバッグログには、スキップされた各パスが記載されます。スキップの理由と復旧手順については、[エラーリファレンスのスキップされたファイルエントリ](/docs/ja/errors#restored-the-code-but-skipped-files)を参照してください。103復元がスキップするパスを確認するには、復元する前に `/debug` でデバッグログを有効にします:`~/.claude/debug/<session-id>.txt` のデバッグログには、スキップされた各パスが記載されます。スキップの理由と復旧手順については、[エラーリファレンスのスキップされたファイルエントリ](/docs/ja/errors#restored-the-code-but-skipped-files)を参照してください。
128 104
129<h3 id="not-a-replacement-for-version-control">105### バージョン管理の代替ではありません
130 バージョン管理の代替ではありません
131</h3>
132 106
133チェックポイントは、クイックなセッションレベルの復旧用に設計されています。永続的なバージョン履歴とコラボレーションの場合は、Git などのバージョン管理を引き続き使用して、コミット、ブランチ、長期履歴を管理してください。107チェックポイントは、クイックなセッションレベルの復旧用に設計されています。永続的なバージョン履歴とコラボレーションの場合は、Git などのバージョン管理を引き続き使用して、コミット、ブランチ、長期履歴を管理してください。
134 108
135<h2 id="see-also">109## 関連項目
136 関連項目
137</h2>
138 110
139* [Interactive mode](/docs/ja/interactive-mode) - キーボードショートカットとセッションコントロール111* [Interactive mode](/docs/ja/interactive-mode) - キーボードショートカットとセッションコントロール
140* [Commands](/docs/ja/commands) - `/rewind` を使用したチェックポイントへのアクセス112* [Commands](/docs/ja/commands) - `/rewind` を使用したチェックポイントへのアクセス