結論:rewind前に変更経路を分ける
Claude Codeのcheckpointingは、各user prompt前の状態を基準に、file editing toolで加えた変更とconversationを素早く戻す機能です。/rewindまたは入力欄が空の時のEsc二回で開き、codeと会話の両方、会話だけ、codeだけ、要約のいずれかを選びます。ただしBash、通常のsubagent、別session、手作業の変更まで一括復旧する機能ではありません。
具体的な困りごとは、「checkpointがあるから大丈夫」と考えて複数経路の変更を同じcheckoutへ重ね、復旧時に戻らないfileや残したい同僚の変更へ気づくことです。この記事を読むと、rewindの5選択肢、追跡範囲、Gitへ切り替える条件を判断できます。
次の行動:今の作業について、ClaudeのEdit、Bash、subagent、別session、人の編集を五列に分け、各列の復旧手段を書いてください。
公式仕様:100件・30日と対象外を確認する
公式checkpointing文書では、Claude Codeはuser promptごとに新しいcheckpointを作り、session内の直近100 checkpointについてfile snapshotを保持します。conversationと一緒に保存されるため、sessionをresumeした後も/rewindを利用できます。sessionとcheckpointは既定で30日後のcleanup対象で、保持期間はcleanupPeriodDaysで変更できます。これは長期backupではなく、作業中の短期回復点です。
rewind menuには、Restore code and conversation、Restore conversation、Restore code、Summarize from here、Summarize up to hereがあります。選択地点より後に追跡対象のfile editがなければcode restoreは表示されません。conversationを戻すと元promptが入力欄へ戻るため、条件を修正して再送できます。summaryはfileを変えずcontextを圧縮し、元messageはtranscriptへ残ります。
最大の制限は変更経路です。Bash commandが削除・移動・copyしたfileは追跡されません。background skillを含む多くのsubagent editも通常は親sessionから戻せず、別sessionや手動editorの変更も対象外です。symlinkとhard linkはrestore時にskipされ、warningが出ます。debug logでskip pathを確認し、Gitまたは手作業で復旧します。
rewindとGitを6軸で比較する
- 速度:直前の試行錯誤はrewind、数日をまたぐ復旧はGitを選びます。
- 対象:Edit toolの変更はcheckpoint、Bash・外部編集・subagentはGitで守ります。
- 会話:promptの分岐や要約はrewind、code履歴だけならcommitとbranchを使います。
- 共同作業:個人sessionの復旧はcheckpoint、reviewと共有はcommitを正本にします。
- 保持:100件・cleanup期間内はcheckpoint、release履歴はremote repositoryへ残します。
- 証拠:試行をやり直すだけならrewind、監査やrollbackにはdiff、test、commit SHAを残します。
会話だけ戻す選択は、codeを維持して別の説明を試す時に便利です。codeだけ戻す選択は、議論や判断材料を残したまま実装を捨てたい時に使います。両方を戻すのは、前提からやり直す時です。どの選択でも、未追跡file、Bashによる生成物、同時sessionの変更を先に確認してください。復旧前後のtest結果とdiffを同じ作業記録へ残すと、何が戻り、何が残ったかを後から説明できます。
安全に変更を戻す8手順
git statusでtracked、untracked、他者変更を確認し、現状のdiffを保存します。- 変更をEdit、Bash、subagent、外部編集に分類し、checkpoint対象外を特定します。
- 入力欄を空にして
/rewindを実行し、戻り先のpromptと時刻を照合します。 - 目的が実装復旧、会話分岐、context圧縮のどれかを一文で決めます。
- codeだけ、会話だけ、両方、二種類のsummaryから最小の操作を選びます。
- skip warningが出たら先へ進めず、
/debugのpathとlink種別を確認します。 - restore後にgit diff、test、生成物、設定fileをreadbackし、期待状態と比較します。
- 採用する状態を小さくcommitし、重要な分岐はbranchへ残して次のpromptへ進みます。
チェックリストとHOLD条件
- 戻り先promptを確認した
- 現diffを読んだ
- untracked fileを確認した
- Bash変更を分離した
- subagent変更を確認した
- 別sessionの有無を確認した
- symlinkとhard linkを確認した
- 会話とcodeのどちらを戻すか決めた
- skip warningを読んだ
- restore後testを固定した
- Gitの復旧点がある
- 共同作業者へ影響しない
HOLDするのは、誰の変更か不明、Bashによるmigrationや削除が混在、同じcheckoutで別sessionが実行中、production dataを操作済み、symlinkの実体が不明、restore後の検証commandがない場合です。checkpointの存在をbackup完了の証明にしません。
よくある質問と次の行動
Escを二回押してもmenuが出ません
入力欄にtextがあると二回Escは入力をclearします。clearされたtextはhistoryへ残るため、Upで戻せます。確実に開くなら/rewindを使います。
summaryを選ぶとfileも戻りますか?
戻りません。summaryはconversationの一部を圧縮してcontextを空ける操作です。file状態は維持されます。
30日より長く残せますか?
cleanupPeriodDaysでsession cleanup期間を調整できますが、組織の保持方針と端末管理を確認し、永続履歴はGitへ残してください。
対象範囲と操作は公式checkpointing、session分岐は公式sessions、保持は公式Claude directoryで再確認してください。
並列編集はsubagent fork、file分離はworktree運用、変更証跡は監査logへつなげます。Miraigentの無料診断では、復旧点、Git、test、責任者を一枚の運用表へ整理します。

