Claude Codeのチェックポイントと/rewindで安全にやり直す
Escを2回押すだけで変更を巻き戻せます。チェックポイントの仕組み、戻せないもの、コミットやworktreeと組み合わせた大胆な試し方を解説します。
日本の職場で働く人ほど、Claude Codeを慎重に使いすぎている印象があります。一手ごとに確認し、大きな変更は頼まず、失敗しそうな案は最初から出させない。丁寧に見えますが、実際にはClaudeの一番の強みである「試す速さ」を捨てています。Claude Codeには、すぐに元に戻せる仕組みが最初から入っています。
この記事では、チェックポイントと/rewindの仕組み、戻せないものの見分け方、そして安全に大胆な変更を試す手順をまとめます。
チェックポイントとは
ターンを開始するプロンプトを送るたびに、チェックポイントが一つ作られます。Claudeがファイル編集ツールで変更する前の状態が記録されるので、設定は何も要りません。
- 1セッションにつき、直近100個のチェックポイントのスナップショットが保存されます
- 会話と一緒に保存されるため、ターミナルを閉じてもセッションを再開すれば巻き戻せます
- スナップショットは既定では約30日後に自動で削除されます。期間は
cleanupPeriodDaysで変更できます
巻き戻し方
入力欄が空の状態でEscを2回押すか、次のように入力します。
/rewind
/checkpointや/undoでも同じメニューが開きます。入力欄に文字がある場合、最初のEsc2回は入力のクリアになります。消した文字は入力履歴に残るので、上矢印キーで呼び戻せます。
メニューには、このセッションで送ったプロンプトが並びます。戻りたい地点を選び、次の中から操作を選びます。
- Restore code and conversation:コードも会話も、その時点に戻す
- Restore conversation:会話だけ戻し、ファイルは今のまま
- Restore code:ファイルだけ戻し、会話は残す
- Summarize from here / up to here:会話の一部を要約してコンテキストを空ける
私が一番よく使うのはRestore codeです。試した案は失敗しても、「なぜ失敗したか」という会話には価値があります。Claudeはその経緯を覚えたまま、ファイルだけきれいな状態に戻ります。
逆に、コードは良いのに会話が脱線してしまったときはRestore conversationが便利です。ファイルはそのままに、話だけを脱線する前の地点に戻せます。長いデバッグで会話が重くなったときは、Summarize from hereで途中から先を要約すれば、最初に伝えた前提を残したままコンテキストを軽くできます。
また、同じClaude Codeのプロセス内で/clearした場合も、v2.1.191以降ならメニューの一番上に直前のセッションが表示され、そこから戻れます。
戻せないもの
ここが一番大事です。チェックポイントが記録するのは、Claudeのファイル編集ツールによる変更だけです。
rmやmvなどのシェルコマンド、フォーマッター、コード生成、DBマイグレーションによる変更- 多くの場合、サブエージェントによる編集
- 自分がエディタで行った変更や、同時に動いている別セッションの変更
- シンボリックリンクやハードリンクのファイル
- push済みのコミット、デプロイ、送信したメール、本番データの変更
つまりチェックポイントは、手元のファイル編集のための「すぐ効くやり直し」です。バックアップでもバージョン管理でもありません。特に会社のリポジトリでは、本番環境や共有データに触れる操作は巻き戻しの対象外だと、チーム全員で共有しておくと安心です。
大胆に試すための手順
まず、コミットします。チェックポイントでカバーできない部分は、これが守ってくれます。
git add -A
git commit -m "レイアウト実験の前"
次に、制約をはっきり書いたうえで、大胆な案を頼みます。
設定画面をタブ形式から、1ページのスクロール形式に作り直してください。
普段なら慎重になるような大きめの変更で構いません。途中の確認は不要です。
ただし、ファイルの変更は編集ツールだけで行い、
シェルでの削除、パッケージの追加、マイグレーション、pushはしないでください。
終わったら、変更したファイルの一覧と、やり直すなら何を変えるかを教えてください。
結果を見て良ければコミット。だめならEscを2回押し、この依頼を送った地点を選んでRestore codeです。何が分かったかをClaudeに伝えて、次の案を試します。
二つの案を並べて比べたいとき
/branchは会話をその地点で分岐させます。元の会話は/resumeで戻れます。ただし分岐するのは会話だけで、ファイルは共有のままです。
ファイルごと別々に試したいなら、Gitのworktreeで別セッションを立ち上げます。
claude --worktree layout-b
それぞれが自分のファイルのコピーで作業するので、二つの案が互いを上書きしません。
数分単位のやり直しは巻き戻し、一日単位の区切りはコミット、本格的な比較はworktree。この使い分けができると、慎重さを保ったまま速く動けます。次の作業でまずコミットし、普段なら頼まない案を一つ試してみてください。