ガイド

Claude Codeで変更を元に戻す方法【2026年最新】:/rewind・Esc+Esc・ccundo・gitの全手順を解説

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

Claude Codeで変更を元に戻す方法【2026年最新】:/rewind・Esc+Esc・ccundo・gitの全手順を解説

Claude Codeで変更を元に戻す方法:/rewind・Esc+Esc・gitまで全手順解説【2026年最新】

室谷室谷
Claude Codeを使ってて、「あ、やばい、さっきの変更に戻したい」ってなったこと、みなさんも絶対ありますよね。MYUUUのエンジニアでも最初は困ってたんですよね・・・
テキトー教師テキトー教師
ありますあります。講座でもよく聞かれるんですが、「Ctrl+Zで戻せないんですか?」って聞いてくる受講生さんが多くて。

ターミナルのCLIツールだから普通のアンドゥが効かない、というのが最初のつまずきポイントですね。
室谷室谷
そうなんですよね。でもClaude Codeには意外とちゃんと「戻す」仕組みが整ってて、使いこなすと全然怖くないんですよ。

今回はその全メソッドを整理してみましょうか。
テキトー教師テキトー教師
この記事を読むと、「/rewind」「Esc+Esc」「ccundo」「git」という4つのアプローチの使い分けが全部わかります。状況によって最適な方法が違うので、そこが一番大事なポイントですね。

Claude Codeの「変更を戻す」方法は4種類ある

室谷室谷
まず全体像を把握しましょう。Claude Codeで変更を戻す方法は大きく分けると4種類あります。
テキトー教師テキトー教師
整理するとこういう構造です。
方法使い所即効性
Esc+Esc(/rewind)直近の変更をセッション内で戻す最速
/rewindコマンドセッション内の任意の時点に戻る速い
ccundo特定の操作だけをピンポイントで戻す中程度
git操作コミット済みの状態に確実に戻る確実だが事前準備が必要
室谷室谷
この4つ、場面によって全然使い勝手が違うんですよね。「ちょっとやり直したい」なら/rewindが一番早いし、「あの特定のファイルだけ戻したい」なら ccundo が便利で・・・
テキトー教師テキトー教師
gitはそもそも「Claude Codeを使う前にコミットしていた」という前提が必要ですよね。講座では「AI使う前にはgit commitしておく癖をつけましょう」と言ってるんですが、なかなか習慣にならない人が多くて(笑)
室谷室谷
わかります。でも習慣にすれば一番強いんですよね・・・ まあ順番に見ていきましょう。

一番速い方法:Esc+Esc(/rewind)でセッション内に戻る

室谷室谷
まずClaude Code組み込みの機能として、Esc+Escを押すか/rewindコマンドを使う方法があります。これが一番速くて簡単です。
テキトー教師テキトー教師
バージョン2.0から搭載されたチェックポイント機能ですね。Claude Codeが自動で変更履歴を記録してくれているので、それを使って任意の時点に巻き戻せます。

/rewindの使い方

Claude Codeのチェックポイントとrewindの仕組み(図解)

室谷室谷
操作はシンプルで、ターミナル上でEscキーを2回連続で押すだけです。あるいは /rewind とタイプしても同じ。

エイリアスとして /checkpoint/undo も使えます。
テキトー教師テキトー教師
すると今までのプロンプト一覧がスクロール表示されて、「どの時点に戻るか」を選べます。
室谷室谷
そこで4つのアクションが選べるのが面白いんですよね。
テキトー教師テキトー教師
そうですね。コードと会話の両方を戻すか、コードだけ戻すか、会話だけ戻すか、あるいは会話を圧縮(要約)するか、という選択ができます。
アクション動作
コードと会話を戻すファイル変更も会話履歴も選んだ時点に戻る
会話を戻す(コードはそのまま)ファイルはそのままで会話だけ巻き戻す
コードを戻す(会話はそのまま)会話履歴はそのままでファイル変更だけ戻す
ここから要約する選んだ時点以降の会話を圧縮してコンテキストを節約
室谷室谷
この使い分け、意外と重要なんですよ。コードは正しいけど「説明の仕方を変えてやり直したい」なら会話だけ戻せばいい。

コードが壊れたけど会話の流れは残したいなら、コードだけ戻す。
テキトー教師テキトー教師
受講生さんによく言うのが、「/rewindしたあとは元のプロンプトが入力欄に戻ってきます」という点です。修正して再送するのが楽になってますよね。

チェックポイントの仕組み

Claude Code公式ドキュメントのCheckpointingページ(公式サイトより)

室谷室谷
仕組みとして知っておくと安心なのが、Claude Codeは「ファイル編集ツールで変更したファイル」を自動でトラッキングしてるということです。毎回のプロンプトごとにチェックポイントが作られる。
テキトー教師テキトー教師
ただし注意点があって、Bashコマンドで変更したファイルは追跡対象外です。
室谷室谷
そこは盲点ですよね。rm -rfとかmvコマンドを Claude Code が bash で実行した場合、/rewind では戻せないんですよ・・・
テキトー教師テキトー教師
だからbashコマンドを多用するような変更作業のときは、事前にgitコミットしておくのがより確実ということですね。チェックポイントとgitは「補完関係」です。

どちらかだけに頼るのではなく使い分けるのがベストプラクティスです。

セッションをまたいだ巻き戻し

室谷室谷
あと嬉しいのが、チェックポイントはセッションをまたいで保持されるという点です。一度Claude Codeを終了しても、--continue--resumeで再開すれば過去のチェックポイントに戻れます。
テキトー教師テキトー教師
ただし30日経つと自動削除されます(設定で変更可能)。「先週やった変更を戻したい」みたいなケースはgitに頼るべきですね。

/btw・/compactとの使い分け

室谷室谷
/rewindと似た機能として、/compactもありますよね。MYUUUのチームだと最初混乱する人が多くて・・・
テキトー教師テキトー教師
そうですね、整理するとこうです。
コマンド目的使い所
/rewind変更を取り消すファイルを壊したとき、やり直したいとき
/compactコンテキストを節約する会話が長くなってきたとき(変更は取り消さない)
/clear会話をリセット新しいタスクに切り替えるとき
室谷室谷
/rewindの「ここから要約する」オプションは実質/compactの部分適用版なんですよね。会話の後半だけ要約して前半は残す、みたいな使い方ができる。
テキトー教師テキトー教師
これは地味に便利です。長いデバッグセッションの途中から要約して、コンテキストウィンドウを節約しながら続けられる。

受講生さんにも「コンテキストが圧迫されてきたら/rewindで要約してみて」と言ってます。

/diffコマンドで変更内容を確認してから戻す

室谷室谷
「戻す」前に「何が変わったか」を確認する方法も知っておくと便利です。Claude Codeには /diff コマンドがあって、これが地味に使えるんですよね。
テキトー教師テキトー教師
/diff を実行するとインタラクティブなdiffビューアが開いて、コミットされていない変更と、ターンごとの変更内容が両方見られます。
室谷室谷
左右矢印キーで「現在のgit diff」と「Claude Codeの各ターンの変更」を切り替えられるのが便利で。「あのターンで何を変えたっけ」をビジュアルで確認してから/rewindする、というフローが一番安全ですね。
テキトー教師テキトー教師
あとgitコマンドの git diff も変更確認に有効です。Claude Codeのセッション内でも !git diff で直接Bashコマンドを実行できます(!プレフィックスでBashモードに入る機能)。

変更履歴(変更ログ)の確認方法

室谷室谷
Claude Codeの変更履歴を確認する方法をまとめると、こういうレイヤーがあります。
テキトー教師テキトー教師
セッション内の変更履歴とgitの変更履歴は別物として管理されてますね。
ツール確認できる変更履歴コマンド
/diffClaude Codeのターン別変更/diff
git diffコミット前の全変更!git diff または terminal で git diff
git logコミット済みの変更履歴!git log --oneline
/rewindチェックポイント一覧Esc+Esc または /rewind
ccundo listセッションの操作履歴ccundo list(別ターミナルで)
室谷室谷
MYUUUでは git log --oneline で変更履歴をざっくり把握して、問題の場所を特定してから /rewindgit checkout で戻す、というフローが定着してます。

claude code 戻るとclaude code 戻すの違い

室谷室谷
検索キーワード的に「claude code 戻す」と「claude code 戻る」という言い方がありますが、どちらも同じ操作を指しています。
テキトー教師テキトー教師
操作としては「変更を取り消す(undoする)」という意味で同じですね。「戻す」は能動的に操作するニュアンス、「戻る」は結果として前の状態に戻るニュアンスですが、どちらも /rewind や git checkout で実現できます。
室谷室谷
会話の巻き戻しという文脈では「claude code 会話を戻す」という言い方もしますね。そちらは/rewindの「会話を戻す」オプションが対応します。
テキトー教師テキトー教師
「claude code コード戻す」なら「コードを戻す」オプション、「claude code 元に戻す」なら両方戻す、という使い分けができます。一つのコマンドで細かく選択できるのが/rewindの強みですね。

チェックポイントの「バージョン管理との関係」を正しく理解する

室谷室谷
ここ、誤解している人が多いポイントなんですが、チェックポイントはgitの代替ではないんですよね。補完関係です。
テキトー教師テキトー教師
そうですね。「Claude Codeのチェックポイントがあるからgitしなくていい」は間違いで・・・
室谷室谷
チェックポイントの役割は「セッション内のクイックアンドゥ」に特化しています。30日で削除されるし、Bashコマンドの変更は追跡できないし、チームメンバーと共有もできません。
テキトー教師テキトー教師
gitの役割は「恒久的なバージョン履歴」ですよね。コミット、ブランチ、プッシュ、コラボレーション、デプロイ。

これはチェックポイントでは代替できません。
室谷室谷
わかりやすい例えで言うと、チェックポイントはゲームの「オートセーブ」で、gitは「セーブデータに名前をつけて保存する」機能です。オートセーブがあるからといって手動保存が不要になるわけじゃないですよね。
テキトー教師テキトー教師
その例え、わかりやすいです。講座でそのまま使わせてもらっていいですか(笑)
室谷室谷
どうぞどうぞw

フォークセッションで「試して戻る」を安全に行う

室谷室谷
もう一つ知っておくと便利なのが --fork-session フラグです。セッションを再開するときに元のセッションをそのまま残しつつ、新しいセッションとして分岐させられます。
テキトー教師テキトー教師
claude --continue --fork-session または claude --resume {セッションID} --fork-session で使えます。
室谷室谷
「この実装アプローチを試してみたいけど、元のセッションも残しておきたい」というときに便利なんですよ。/rewindだと元のセッションに上書きしてしまいますが、forkなら「分岐したセッションを捨てればいい」だけで。
テキトー教師テキトー教師
ブランチ思考でAIコーディングするための機能ですね。セッションをgitのブランチのように使う発想です。
室谷室谷
実験的な変更を試すときはfork、明らかに間違えたときは/rewind、という使い分けが洗練されてきてる感じがします。Claude Codeのバージョン管理まわりの機能がどんどん充実してきてますよね・・・

ccundoでピンポイントに特定の変更を取り消す

室谷室谷
次に紹介したいのがcommunity製のツール「ccundo」です。これ、知ってる人少ないんですけど意外と便利なんですよね。
テキトー教師テキトー教師
コミュニティのメンバーさんでclaude codeのセッションファイルを直接パースして、特定の操作だけアンドゥできるツールです。npmでインストールできます。
npm install -g ccundo
室谷室谷
/rewindとの最大の違いは「特定のファイルだけ、特定の操作だけを取り消せる」点ですね。
テキトー教師テキトー教師
/rewindは「この時点より前に全部戻す」なのに対して、ccundoは「あの操作だけをなかったことにしたい」ができます。10個の変更のうち、5番目だけを取り消したいときに活躍します。

ccundoの使い方

室谷室谷
操作手順は3ステップです。
# ステップ1: 操作履歴を確認
ccundo list

# ステップ2: 変更内容をプレビュー(確認)
ccundo preview

# ステップ3: アンドゥを実行
ccundo undo
テキトー教師テキトー教師
ccundo list を実行すると、Claude Codeのセッションファイルから全操作履歴が表示されます。どのファイルをいつ変更したか一覧で見えます。
室谷室谷
ccundo preview で「戻したらどうなるか」のdiffが見えるので、間違えてもう一つ変なことにならないか確認できるのが安心感あります。
テキトー教師テキトー教師
ccundoは戻す前にバックアップも取ってくれるので、「ccundoで戻したけど実はそっちの方が正しかった」という逆転現象も防げます(笑)
室谷室谷
ただし /rewind と同じで、Bashコマンドで実行した変更はccundoも追跡できません。Claude Codeのファイル編集ツールを通じた変更だけが対象です。
テキトー教師テキトー教師
あとこれはローカルで完全完結なので、トークンを消費しません。Claude Codeに「さっきの変更を元に戻して」と頼む必要がなくて、APIコストゼロで実行できます。
室谷室谷
これMYUUUのチームに共有したら「そうかAPIコスト無駄だったか」って言われましたよw 確かにClaudeに頼むとトークン使うし、たまに別の変更も追加でやっちゃうんですよね・・・

gitで確実に戻す:コミット前後のケース別手順

室谷室谷
最後にgitの話をしましょう。これが一番「確実」な方法なんですが、事前の習慣づけが重要です。
テキトー教師テキトー教師
教える側からすると、gitのことをClaude Codeと切り離して考えてほしいというのが本音ですね。Claude Codeはファイルを編集するツールで、gitは変更を記録するシステム。

この両方を組み合わせるのが正解です。

パターン1:Claude Codeで変更前にコミットしていた場合

室谷室谷
理想的なのはこのパターンですね。Claude Codeに変更を頼む前にコミットしておけば、いつでも確実に戻せます。
# Claude Codeが変更したものを確認
git diff

# 全変更を破棄して最後のコミットに戻す
git checkout .

# あるいは特定のファイルだけ戻す
git checkout -- src/components/Header.tsx

# 変更をstashで一時退避(後で使うかもしれないとき)
git stash
テキトー教師テキトー教師
git checkout . は強力ですが、コミットしていない全変更が消えます。「やっぱり必要だった」とならないよう、まず git diff で何が変わっているかを確認するのを習慣にしてください。

パターン2:コミットしていなかった場合(最悪ケース)

室谷室谷
これが一番困るパターンですよね・・・ コミットせずに作業してたら Claude Code が大規模に書き換えてしまった、みたいな。
テキトー教師テキトー教師
そういうときは /rewind か ccundo に頼るしかないですね。gitは使えません。

だからこそ「Claude Codeを使う前にはgit commitする癖をつける」が重要で。
室谷室谷
MYUUUでのルールは「AIに変更を頼む前にはfeatureブランチ切ってコミット」です。claude codeがどこかで踏み外しても、ブランチを丸ごと捨てればいいだけなので精神的に楽で・・・
テキトー教師テキトー教師
それは良いアプローチですね。ブランチを「Claude Codeの実験場」として使う考え方です。

Claude Codeをgitと組み合わせるベストプラクティス

室谷室谷
実務で使いやすいフローをまとめるとこうなります。
テキトー教師テキトー教師
この流れを習慣にするだけで、「変更を戻せなくて困った」がほぼゼロになります。
タイミングやること
AI作業開始前git checkout -b feature/ai-work でブランチ作成
変更を頼む前git commit -m "before AI changes" でセーブポイント
Claude Codeが変更中自動チェックポイントが保存される
変更が気に入らないときまず /rewind を試す
/rewindで戻せないときgit checkout . で最後のコミットに戻る
作業が完了したときgit commit して mainにマージ
室谷室谷
このフローだとチェックポイントとgitが両方機能するので、どこかで何かが起きても必ず戻れる状態が保てますよね。
テキトー教師テキトー教師
「AI使ったら戻せなくなるかも」という不安を持っている人が講座に来ることが多いんですが、この習慣を身に付けてもらうとかなり安心して使えるようになります。

「戻す」を使いこなすための3つのシナリオ別Q&A

室谷室谷
実際によくある困りパターンをいくつか見ていきましょうか。
テキトー教師テキトー教師
コミュニティでも「こういうケースはどうするの?」という質問が多いので、シナリオ別に整理しますね。

シナリオ1:複数ファイルを変更されたが1ファイルだけ戻したい

室谷室谷
これ割とよくある状況ですよね。Claude Codeが「ついでにリファクタリングしておきました」って言って、頼んでないところまで変えてることがあって・・・
テキトー教師テキトー教師
そういうときは ccundo が便利です。ccundo list で変更一覧を見て、戻したい操作だけ選んで ccundo undo

残りの変更は保持できます。
室谷室谷
gitを使う場合は git checkout -- {ファイルパス} で特定ファイルだけ戻せます。

シナリオ2:前のセッションの変更を今から戻したい

室谷室谷
「昨日Claude Codeに変更してもらったけど、やっぱり戻したい」みたいなケース。
テキトー教師テキトー教師
セッションが30日以内ならチェックポイントが残っているので、--resume {セッションID} で再開してから /rewind が使えます。
室谷室谷
セッションIDは ~/.claude/projects/ の下のディレクトリ名や、claude --resume でセッション一覧から選べます。
テキトー教師テキトー教師
でも現実的には「昨日の変更を戻したい」ときはgit revertやgit resetの方が確実ですね。セッションをまたぐ場合はgitを使う、というのが覚えやすいルールです。

シナリオ3:Claude Codeに「戻して」と頼んでも上手くいかない

室谷室谷
これもよく聞かれます。「Claude Codeに元に戻してと言ったら、なんか違う変更になった」。
テキトー教師テキトー教師
Claudeに自然言語で「元に戻して」と頼むと、Claudeはコードを読んで「戻した状態を推測して書く」ことになるので、完璧に元通りになるとは限らないんですよね。
室谷室谷
そうなんですよね。トークンも消費するし、意図しない変更が追加される可能性もある。

だからこういうときはトークンを使わず /rewind や ccundo を使うのがスマートです。
テキトー教師テキトー教師
「AIに頼む」より「ツールで機械的に戻す」の方が正確で速い、というのは意外と気づかれないポイントですね。

よくある質問(FAQ)

テキトー教師テキトー教師
最後によくある質問をまとめておきます。コミュニティのメンバーさんからよく受ける質問を中心に。
室谷室谷
/rewindはどのバージョンから使えますか、と聞かれることが多いですよね。
テキトー教師テキトー教師
Claude Code v2.0以降で使えます。現在(2026年4月時点)は標準機能なので、最新版を使っていれば誰でも利用できます。

バージョン確認は claude --version で。
室谷室谷
チェックポイントの保存場所もよく聞かれますね。
テキトー教師テキトー教師
~/.claude/projects/ の下、セッションIDに対応したディレクトリに保存されます。デフォルトで30日後に自動削除されます。
室谷室谷
ccundoがAnthropicの公式ツールかどうかも気になる人が多そうです。
テキトー教師テキトー教師
これはコミュニティが開発したサードパーティ製のツールです。npmで公開されています(ccundo)。

Anthropic公式ではありませんが、Claude Codeのセッションファイルを読む仕組みで動いています。
室谷室谷
セッションをまたいでチェックポイントに戻れますか、というのは?
テキトー教師テキトー教師
戻れます。30日以内のセッションであれば、claude --resume {セッションID} で再開してから /rewind が使えます。
室谷室谷
Claude Codeに「元に戻して」と頼むのはダメ?という疑問もあります。
テキトー教師テキトー教師
ダメではないですが、/rewindやccundoを使う方がトークン節約になりますし、より正確に戻せます。Claudeが推測で書き直すかわりに、記録された変更を機械的に巻き戻すので確実性が高いです。

まとめ:状況別・最適な「戻す」方法の選び方

室谷室谷
今回の内容を一言でまとめると、「状況によって使い分けること」ですね。どれか一つを覚えるより、4つの方法をそれぞれ知っておく方が実際には役立ちます。
テキトー教師テキトー教師
判断フローを整理するとこうなります。
状況推奨する方法
さっきの変更を全部取り消したいEsc+Esc または /rewind
特定のファイル・操作だけ取り消したいccundo
コミット前の状態に戻りたい(git習慣あり)git checkout . または git checkout -- ファイル
長いデバッグ会話を圧縮してコンテキストを節約したい/rewindの「ここから要約する」
セッションをまたいで前の状態に戻りたいgit revert / git reset
室谷室谷
個人的に一番大事だと思うのは「AI使う前にgitコミットしておく習慣」です。これさえあれば最悪の場合でも必ず戻れますから。
テキトー教師テキトー教師
同感です。それと /rewind の存在を知っているだけで、Claude Codeで怖い思いをする確率がかなり下がります。

知ってるか知らないかの差が大きい機能ですね。
室谷室谷
Claude Codeはどんどんアップデートされていて、変更管理まわりの機能も進化し続けています。公式ドキュメントのCheckpointingページをブックマークしておくと、最新情報を追いやすいですよ。

出典

.AI TIMES一覧に戻る