チェックポイントと巻き戻し
Claude Code のチェックポイントで、Claude のファイル編集と会話を巻き戻す・要約する方法と、巻き戻しメニューの選択肢、追跡されないものの制限をまとめます。
Claude Code は、作業中の Claude のファイル編集を自動で追跡します。うまくいかなくなったら、変更を取り消して前の状態へ素早く戻せます。
- ターンを始めるプロンプトを送るたびに、コードの状態がチェックポイントとして記録されます
/rewind、または入力が空のときの Esc 2回で、巻き戻しメニューが開きます- コードだけ、会話だけ、両方、のどれを戻すか選べます。会話の一部を要約して、コンテキストを空けることもできます
- Bash コマンドによる変更や、サブエージェントの編集は追跡されません
- チェックポイントはセッション単位の素早い復旧用で、バージョン管理の代わりにはなりません
チェックポイントの仕組み#
ターンを始めるプロンプトを送るたびに、その直前のコードの状態が自動で記録されます。
自動の追跡#
Claude Code は、ファイル編集ツールによるすべての変更を追跡します。
- ターンを始めるプロンプトを送るたびに、新しいチェックポイントができる
- セッションで、直近100個のチェックポイントのファイルのスナップショットを保つ。古いチェックポイントを捨てると、残りのチェックポイントのどれからも参照されないスナップショットファイルが消える。ただし各ファイルの最初のスナップショットは、VS Code 拡張がセッションの diff の基準に使うので残る
- チェックポイントは会話と一緒に保存されるので、セッションを再開した後でも
/rewindを実行できる - セッションのファイルのスナップショットは、保持の掃除で、既定ではセッションが最後にスナップショットを保存してから約30日後に消える。スナップショットが消えたチェックポイントへ巻き戻すと、
No files were restoredで失敗することがある。もっと長く残すにはcleanupPeriodDaysを設定する
保持の規則は.claude ディレクトリの中身、設定キーは設定キー一覧、エラーはエラー一覧にあります。
巻き戻しと要約#
/rewind を実行するか、プロンプトの入力が空のときに Esc を2回押すと、巻き戻しメニューが開きます。
補足
入力に文字があるとき、Esc 2回はメニューを開かず入力を消します。消した文字は入力履歴に保存されるので、巻き戻しメニューを終えたあとに Up で呼び戻せます。
メニューには、セッションで送った各プロンプトが並びます(実行中のターンに加わったメッセージを除く)。戻したい時点を選んで、操作を選びます。
| 選択肢 | 動作 |
|---|---|
| Restore code and conversation | コードと会話の両方をその時点へ戻す |
| Restore conversation | 現在のコードを保ったまま、そのメッセージの時点まで会話を巻き戻す |
| Restore code | 会話を保ったまま、ファイルの変更を戻す |
| Summarize from here | この時点から先の会話を要約に圧縮し、コンテキストの窓に余裕を作る |
| Summarize up to here | この時点より前の会話を要約に圧縮し、後ろのメッセージはそのまま残す |
| Never mind | 何も変えずにメッセージ一覧へ戻る |
コードを戻す2つの選択肢は、選んだチェックポイントに戻せる追跡済みのファイル変更があるときだけ出ます。その時点より後に記録されたファイル編集がなければ、メニューには「Restore conversation」・要約の選択肢・「Never mind」だけが出ます。
会話を復元した後や「Summarize from here」を選んだ後は、選んだメッセージの元のプロンプトが入力欄に戻るので、再送や編集ができます。「Summarize up to here」を選ぶと、会話の末尾にいて入力は空のままです。どちらの要約でも、圧縮されたメッセージのあった場所に「Summarized conversation」の印が出ます。
消した会話の前へ戻る#
同じ Claude Code のプロセスで先に /clear を実行していると、巻き戻しメニューの一覧の先頭に、/resume <session-id> (previous session) という項目が加わります。選ぶと、/clear の前に動いていた会話を再開します。この項目は、Claude Code を終了するか別のセッションを再開するまで使えます。
要約に方向を付ける#
要約はディスク上のファイルを変えず、元のメッセージはセッションのトランスクリプトに残るので、Claude は詳細を参照できます。要約の焦点を指示するには、矢印キーで「Summarize」の選択肢を強調し、「add context (optional)」と書かれた行に指示を入力して Enter を押します。番号キーで選ぶと、指示なしで、すぐ要約します。
補足
要約は同じセッションに留まり、狙いを絞った /compact のようにコンテキストを圧縮します。元のセッションを残したまま別の方法を試すなら、代わりに /branch か claude --continue --fork-session を使います。詳しくはセッションの再開と管理を参照してください。
向いている使い方#
- 別の案を探る:出発点を失わずに、別の実装方法を試す
- 失敗から戻る:バグを入れた、または機能を壊した変更をすぐ取り消す
- 機能の反復:動く状態へ戻せると分かったうえで、いくつもの変形を試す
- コンテキストの確保:長いデバッグのセッションを途中から先だけ要約し、最初の指示は残す
制限#
Bash コマンドによる変更は追跡されない#
チェックポイントは、Bash コマンドが変更したファイルを追跡しません。たとえば Claude Code が次を実行しても、
rm file.txt
mv old.txt new.txt
cp source.txt dest.txt
これらのファイルの変更は、巻き戻しでは取り消せません。追跡されるのは、Claude のファイル編集ツールによる直接の編集だけです。
サブエージェントの編集は復元されない#
サブエージェントも Claude のファイル編集ツールで編集しますが、Claude Code は通常、その編集をセッションのチェックポイントに取り込みません。巻き戻しで復元されるかは、サブエージェントの動かし方で決まります。
- フォアグラウンドのフォークされたスキル:
context: forkのスキルがフォアグラウンドで動くと、自分のターンの間に作業ツリーを編集するので、その編集は通常どおり巻き戻しで復元される。フォークをフォアグラウンドで動かすにはbackground: falseを設定する。設定に関わらずフォアグラウンドで動かす状況もある(詳しくはスキル) - それ以外のサブエージェント:巻き戻しは編集を復元しない。git で戻す。既定のバックグラウンドで動くフォークされたスキルと、バックグラウンドの
/code-review --fixの実行も、これに含まれる(コードレビューと ultrareview)
サブエージェントについてはサブエージェントを参照してください。
外部の変更は追跡されない#
チェックポイントが追跡するのは、現在のセッション内で編集されたファイルだけです。Claude Code の外で手で行った変更や、ほかの同時セッションの編集は、現在のセッションが同じファイルを変更したときを除き、通常は取り込まれません。
ターンの途中で送ったメッセージはチェックポイントにならない#
Claude の作業中にキューへ入れたメッセージが、実行中のターンの中で Claude に届くと、新しいターンを始めずにそのターンへ加わります。メッセージは会話に出ますが、Claude Code はそれのチェックポイントを作らず、巻き戻しメニューにも出ません。キューのメッセージが新しいターンの一部として送られた場合は、複数のキューのメッセージがそのターンを共有するときを含め、通常どおりチェックポイントができます。そのようなメッセージを取り除く、またはその後に Claude が行った編集を取り消すには、そのターンを始めたプロンプトへ巻き戻します。メッセージが届く前に Claude が行った作業を含め、ターン全体が巻き戻ります。
シンボリックリンクとハードリンクのパスは復元されない#
チェックポイントは、シンボリックリンクやハードリンクのファイルを巻き戻しません。/rewind メニューで「Restore code」か「Restore code and conversation」を選ぶと、Claude Code は追跡済みのパスのうちシンボリックリンクかハードリンクのものを飛ばし、Restored the code, but skipped N files の警告を出します。飛ばされたファイルは現在の内容のままです。そのうち1つについてセッションの変更を取り消すには、Claude に編集を逆にするよう頼むか、自分でファイルを編集します。dotfile マネージャーがプロジェクトへ張るシンボリックリンクの設定ファイルや、pnpm がハードリンクで置くファイルが、これに当たります。
復元が飛ばすパスを見るには、復元の前に /debug でデバッグログを有効にします。~/.claude/debug/<session-id>.txt のデバッグログに、飛ばした各パスが出ます。
バージョン管理の代わりにはならない#
チェックポイントは、セッション単位の素早い復旧のためのものです。恒久的なバージョン履歴と共同作業には、コミット・ブランチ・長期の履歴のために、Git のようなバージョン管理を使い続けます。
関連するページは、対話モードの操作、スラッシュコマンド一覧、CLI のコマンドとフラグです。
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。