Claude Code: チェックポイントとロールバック
最終更新:2026-08-31
チェックポイントは Claude Code のセーフティネットです — 重要な操作前に自動スナップショットを作成し、問題があればいつでもロールバックできます。
💡 ヒント: チェックポイントは git コミットではありません — セッション粒度のスナップショットで、各操作の状態を記録し、任意のステップへの正確なロールバックを可能にします。
📋 前提条件: 第19章 - CLI リファレンスマニュアル
1. 学ぶ内容
- チェックポイントメカニズムと自動スナップショット
- 手動チェックポイントの作成
- 任意のステップへのロールバック
- チェックポイントと git の関係
- セーフティネット戦略
2. チェックポイントメカニズム
(1) 動作原理
| トリガー条件 | 自動作成 | 説明 |
|---|---|---|
| セッション開始 | ✅ | 初期状態を記録 |
| ファイル修正前 | ✅ | 修正前の状態を記録 |
| コマンド実行前 | ✅ | コマンド前の状態を記録 |
| 手動リクエスト | ✅ | /checkpoint |
▶ 例1:チェックポイント一覧の確認
TEXT
📖 参照専用
> /checkpoints
#1 [14:20:00] Session start | 0 files changed
#2 [14:22:15] Modified jwt.ts | 2 files changed
#3 [14:25:30] Modified auth.ts | 1 file changed
#4 [14:30:15] Added tests | 3 files changed
#5 [14:35:00] Current state | 6 files changed
3. 手動チェックポイント
(1) チェックポイントの作成
TEXT
📖 参照専用
> /checkpoint
✅ Checkpoint #6 created
> /checkpoint "Pre-migration state"
✅ Checkpoint #6 created with description
(2) ベストプラクティス — いつ作成するか
| タイミング | 理由 |
|---|---|
| 大きな変更の前 | リファクタリング、マイグレーション等 |
| マイルストーン完了時 | 機能ポイントの完了 |
| 不確実な操作の前 | 実験的な修正の前 |
| 離脱する前 | 現在の進捗を保存 |
▶ 例2:大きな変更の前
TEXT
📖 参照専用
> /checkpoint "Pre-migration state"
✅ Checkpoint #6 created
> Migrate auth from Session to JWT
Claude Code: 12ファイルを修正中... 3テスト失敗 ❌
# Alice はロールバックして別の方法を試すことに決める
> /rollback 6
✅ Rolled back to checkpoint #6 (pre-migration state)
4. ロールバック操作
(1) ロールバック方法
| コマンド | 説明 |
|---|---|
/rollback |
前のチェックポイントにロールバック |
/rollback <n> |
指定されたチェックポイントにロールバック |
/undo |
最新の操作を取り消し |
git checkout . |
すべての未コミット変更を取り消し |
▶ 例3:ステップごとのロールバック
TEXT
📖 参照専用
> /checkpoints
#1 [14:20] Start
#2 [14:22] Added UserService
#3 [14:25] Added tests
#4 [14:30] Refactored UserService (failed)
#5 [14:35] Attempted fix (still failing)
# 失敗したリファクタリングだけをロールバックし、成功した追加は保持
> /rollback 3
✅ Rolled back to checkpoint #3
Kept: UserService + tests
Reverted: Refactor + fix attempt
# 別のアプローチでリファクタリング
> Refactor UserService with different approach
5. チェックポイントと Git
(1) 比較
| 次元 | チェックポイント | Git |
|---|---|---|
| 粒度 | 操作レベル | コミットレベル |
| 永続性 | セッション内のみ | 永続的 |
| 保存先 | メモリ/一時 | リポジトリ |
| 共有 | 共有可能 | プッシュ可能 |
| ロールバック | ステップ単位で正確 | コミット単位で正確 |
(2) 協調戦略
TEXT
📖 参照専用
# ベストプラクティス:チェックポイント + git の二重保険
# 1. セッション前に git コミット
git add -A && git commit -m "before: claude session"
# 2. セッション内のロールバックにチェックポイントを使用
/checkpoint "Milestone complete"
/rollback 3
# 3. セッション後に git コミット
git add -A && git commit -m "feat: user auth module"
# 4. セッション全体が失敗した場合、git でロールバック
git reset --hard HEAD~1
6. 多層セーフティネット
TEXT
📖 参照専用
Level 1: /undo — 最新の操作を取り消し
Level 2: /rollback — チェックポイントにロールバック
Level 3: git checkout — 未コミット変更を取り消し
Level 4: git reset — 任意のコミットにロールバック
Level 5: git reflog — 失われたコミットを復旧
❓ よくある質問
Q チェックポイントはどのくらい保持されますか?
A 現在のセッション内のみです。終了するとチェックポイントは失われますが、git コミットは永続的です。
Q ロールバックですべての進捗が失われますか?
A いいえ。特定のチェックポイントへのロールバックはそのポイント以降の変更のみを取り消し、それより前の変更は保持されます。
Q 単一ファイルをロールバックできますか?
A チェックポイントのロールバックはステップ単位です。単一ファイルのロールバック:
git checkout -- <file>。Q ロールバック後、Claude Code は以前の会話を記憶していますか?
A はい。会話履歴は保持されますが、ファイルの状態はロールバックされます。Claude Code は何をしたか、何をロールバックしたかを知っています。
📖 まとめ
- チェックポイントは重要な操作前に自動作成。手動は
/checkpoint /rollback <n>で指定ステップへの正確なロールバック- チェックポイントはセッションレベル。git は永続的。両者を併用
- 多層セーフティネット:undo → rollback → git checkout → git reset → reflog
- 大きな変更の前には必ずチェックポイントを作成
📝 練習問題
- 基本 (⭐): チェックポイントを作成し、変更を加え、ロールバックして、ファイルが復元されたことを確認してください。
- 応用 (⭐⭐): 3つの修正ステップを実行し、ステップ2にロールバックし、ステップ1が保持されステップ3が取り消されたことを確認してください。
- 高度 (⭐⭐⭐): チェックポイントと git を組み合わせた多層セーフティネットを設計し、あらゆる操作の復旧を可能にしてください。