メインコンテンツまでスキップ

チェックポイントと巻き戻し

中級
What you'll learn
  • チェックポイントが何を記録し、何を黙って記録しないのかを理解する
  • 巻き戻しメニューを2通りの方法で開き、毎回適切な復元アクションを選ぶ
  • 「restore」(状態を元に戻す)と「summarize」(コンテキストを圧縮する)を区別する
  • チェックポイントが Git を補完こそすれ、決して置き換えない理由を正確に知る

基本の考え方​

大規模で野心的な変更を Claude に任せるとき、いちばん怖いのは「3回編集したところで失敗したらどうしよう?」という点です。チェックポイントはその答えです。Claude Code は、あなたが開始するターンの前に毎回コードを自動でスナップショットするので、中途半端なリファクタリングを手作業でほどく代わりに、以前の状態へ巻き戻せます。

セッション全体のローカルな元に戻す機能と考えてください。「よし、大胆な方法を試そう」と、怖がらずに言えるセーフティネットです。

チェックポイントの作られ方​

チェックポイントは自分で作るものではなく、自動で作られます。

Guided walkthrough1 of 4
  1. ターンを開始する各プロンプトは、Claude のファイル編集ツールが動く前のコードの状態を記録します。コマンドも設定も儀式も不要です。

巻き戻しメニューを開く​

入り方は2通りあります。

Guided walkthrough1 of 2
  1. プロンプトでスラッシュコマンドを入力します。常に使えます。/checkpoint と /undo は同じコマンドのエイリアスなので、思い浮かんだ名前で構いません。

巻き戻しメニューを開く

/rewind
Watch out
  • エイリアス名は、字面ほど文字どおりではありません。/checkpoint はその場でスナップショットを取るわけではなく(スナップショットは自動です)、/undo も直前の編集を単独で取り消すわけではありません。3つの名前はどれも同じメニューを開き、そこで時点とアクションを選びます。

メニューには、このセッションで送信したすべてのプロンプトが並びます。操作したい時点を選び、アクションを1つ選びます。

restore と summarize:重要な区別​

ここで混乱しやすくなります。メニューには2種類のアクションがあります。

  • Restore アクションは、ディスク上や会話の状態を変えます — 元に戻す操作です。
  • Summarize アクションは、ファイルには一切触れません — 会話を圧縮してコンテキストウィンドウの空きを増やします。
Watch out
  • Restore = 元に戻す(コード、会話、または両方を巻き戻す)。Summarize = コンテキストを圧縮する(ディスク上のファイルは変わらない)。
  • 編集で何かが壊れたら restore を使う。セッションが肥大化したがコードは問題ないなら summarize を使う。

restore アクション​

Guided walkthrough1 of 3
  1. ファイルとチャット履歴の両方を選択した時点まで戻します。その瞬間への、きれいな「時間の巻き戻し」です。

2つのコードの restore オプションは、選択したチェックポイントに、元に戻せる追跡済みのファイル変更が実際にある場合にだけ表示されます。その時点以降にファイル編集が記録されていなければ、メニューには Restore conversation、2つの summarize オプション、Never mind(何も変更せずメッセージ一覧に戻る)だけが表示されます。

会話を復元した後(または "Summarize from here" を選んだ後)、選択したメッセージの元のプロンプトが入力欄に戻されるので、再送信や編集ができます。

summarize アクション​

どちらも会話の一部を AI が生成した要約に圧縮します — 選択したメッセージのどちら側を圧縮するかを選べる、対象を絞った /compact のようなものです。

Guided walkthrough1 of 2
  1. 選択したメッセージより前のメッセージはそのまま残ります。選択したメッセージとそれ以降が要約になります。脇道の議論を捨てつつ、初期のコンテキストを詳細のまま残したいときに使います。

どちらの場合も、元のメッセージはセッションの記録に残るため、Claude は詳細を参照でき、圧縮されたメッセージのあった場所には Summarized conversation のマーカーが表示されます。要約の焦点を指示するには、矢印キーで Summarize オプションを選択し、add context (optional) と表示された行に指示を入力して Enter を押します。数字キーでオプションを選ぶと、指示なしですぐに要約されます。

全体の流れは Context Management を参照してください。/rewind の summarize アクションが外科用メスなら、/compact は太い刷毛です。

What you'll learn
  • Summarize は同じセッションにとどまります。元のセッションをそのまま残して別のアプローチを試したい場合は、代わりに /branch または claude --continue --fork-session を使ってください。

/clear を越えて巻き戻す​

同じ Claude Code プロセス内で以前に /clear を実行した場合、巻き戻しメニューの先頭に /resume <session-id> (previous session) という項目が追加で表示されます。これを選ぶと、/clear の前にアクティブだった会話に戻れます。

チェックポイントの限界 — 痛い目に遭うポイント​

チェックポイントは魔法のように思えますが、そうでなくなる瞬間があります。次の穴は重要です。

Guided walkthrough1 of 7
  1. 追跡はファイル単位で、ファイルが追跡対象になるのは Claude がファイル編集ツールでそのファイルを編集したときだけです。いったんそうなると、その後に Bash コマンドが同じファイルへ加えた変更も /rewind で元に戻せます。編集済みのファイルをフォーマッタやジェネレータが書き換えた場合も巻き戻し可能です。Bash しか触れていないファイルは追跡されず、そのまま残るため、Claude が一度も編集していないファイルを rm で削除した場合は Git が必要です。メニューにもこれが反映され、各プロンプトの下には、原因を問わず、Claude がすでに編集していたファイルへの変更が数えられます。

チェックポイントと Git:両方使う​

解決する問題が違うので、組み合わせましょう。

チェックポイント (/rewind)Git
範囲1つのセッションプロジェクト全体の履歴
粒度ターンを開始するプロンプトごと、自動コミットごと、意図的
bash による変更を追跡する?Claude がすでに編集したファイルのみはい(ステージ/コミット後)
保持期間直近100個のチェックポイント、セッションの約30日後に整理永続
共有 / 共同作業不可可
イメージ「ローカルの元に戻す」「永続的な履歴」
Pro tip
  • 危険で大規模な実行の前に、動作する状態を Git でコミットしておく — それが永続的な最低ラインになる。
  • コミットの合間の素早いセッション内復旧には /rewind を使い、Git の履歴を汚さない。
  • Claude が直接編集しないファイル、つまり破壊的な bash(rm/mv)やバックグラウンドのサブエージェントだけが触れるファイルについては Git に頼りましょう。rewind がカバーするのは、Claude が自分のファイルツールで編集した後のファイルだけです。

使いどころ​

Guided walkthrough1 of 4
  1. 大胆な実装を試し、気に入らなければ分岐点までコードと会話を restore して別の方法を試します。

理解度チェック

0/3
  1. Claude はファイルツールで `config.old.json` を一度も編集せず、bash コマンドの `rm` で削除しました。`/rewind` で元に戻せますか?
  2. コードは問題ないが、長いデバッグの寄り道でコンテキストウィンドウが埋まった。どのアクションが適切?
  3. チェックポイントはどのように作られる?
チェックポイントと巻き戻しの用語集
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。
1 / 6
Key takeaways
  • チェックポイントは、ターンを開始するプロンプトごとに取られる自動スナップショットで、セッションのローカルな元に戻す機能。直近100個を保持し、セッションの約30日後に整理される。
  • 巻き戻しメニューは /rewind(エイリアス: /checkpoint、/undo)か、空の入力欄での Esc 2回押しで開く。送信したすべてのプロンプトが並ぶ。
  • Restore アクションは状態(コード、会話、または両方)を元に戻し、summarize アクションはコンテキストを圧縮してファイルには触れない。
  • 追跡はファイル単位で、Claude がファイルツールで編集した時点から始まり、その後はそのファイルへの Bash による変更も巻き戻せます。Claude が一度も編集していないファイル(bash のみ、外部、同時実行、ほとんどのサブエージェント)は追跡されず、シンボリックリンクやハードリンクのパスは restore 時にスキップされます。
  • チェックポイントは Git を補完するもので、置き換えるものではない。「ローカルの元に戻す」と「永続的で共有できる履歴」だと考えよう。

次へ​

  • Context Management — /compact、/clear、そして summarize が全体像にどう収まるか
  • プランモード — 編集が走る前に調査して計画を承認し、巻き戻しの回数を減らす
  • 権限(Permissions) — 大がかりなタスクを安全に実行するための、もう半分