Claude Code ロードマップ
Phase 5GitHub7ステップ中 7つめ

元に戻す

このページのゴール:失敗しても3つのコマンドの使い分けで元に戻せる

所要時間の目安: 15分動作確認日: 2026-08-05

手順

1. わざとファイルを壊す

練習用リポジトリで、安全に失敗してみます。

ターミナルに貼り付ける
cd ~/dev/hello-github
ターミナルに貼り付ける
echo "この行は失敗です" >> README.md

>> は「ファイルの末尾に追記する」という意味です。 これでREADME.mdに、消したい行が入ってしまいました。

2. 壊れたことを確認する

ターミナルに貼り付ける
git status

modified: README.md(README.mdが変更されています)と表示されます。

3. git restore で戻す

まだcommitしていない変更を取り消すコマンドです。

ターミナルに貼り付ける
git restore README.md

もう一度 git status を実行してみてください。 nothing to commit, working tree clean(変更なし)に戻っています。 失敗の行は消え、最後のcommitの状態に戻りました。

4. 3つの使い分けを頭に入れる

「戻す」コマンドは、主に3つあります。暗記は不要です。 困った時に、この表に戻ってくれば十分です。

コマンド何を戻すか履歴はどうなる使う場面
git restore ファイル名まだcommitしていない変更変わらない保存前の失敗を取り消す
git reset --hard 戻り先手元をそのcommitの状態へ手元の履歴ごと巻き戻るpush前に丸ごとやり直す
git revert コミットIDそのcommitの内容「打ち消しcommit」が増えるpush後に安全に取り消す

覚え方は1つだけです。 👉 push前の失敗は reset、push済みの失敗は revert

5. 迷ったらClaudeに状況を貼る

自分で判断できない時に、勘でコマンドを打つのが一番危険です。 状態を貼って、Claudeに聞いてください。

Claudeにこう伝える(打ち込むコマンドではありません)

Gitで元に戻したいです。状況を貼るので、一番安全な戻し方を教えてください。 コマンドを実行する前に、それで何が起きるかも説明してください。 やりたいこと: (例: 直前のcommitより前の状態に戻したい) git status の結果: (ここに貼る) git log --oneline -5 の結果: (ここに貼る)

✅ ここまで出来たらOK

確認コマンド
git status

期待される表示:nothing to commit, working tree clean と表示される(手順1の失敗行が消えている)

そうならない場合 → エラー逆引きページ を見てください。

📖 出てきた言葉

restorerestoreリストア

まだcommitしていない変更を取り消して、最後のcommitの状態に戻すコマンド。 「保存前のやらかし」はこれ1つで消せる。3つの中で一番よく使う。

resetresetリセット

手元の履歴ごと、指定したcommitまで巻き戻すコマンド。 push前の失敗を丸ごとなかったことにできる。強力なので実行前に確認する。

revertrevertリバート

指定したcommitを打ち消す内容を、新しいcommitとして積むコマンド。 履歴を消さずに戻せるから、push済みでも安全に使える。

reset --hard は取り消せない

⚠️ git reset --hard で消えた「commitしていない変更」は、基本的に復元できません。 実行する前に、消えて困るものがないか必ず確認してください。 迷ったら実行せず、手順5のテンプレでClaudeに聞いてください。

push済みの履歴を reset で巻き戻してしまった

GitHub側と手元の履歴が食い違い、次のpushが拒否されます。 無理に解決しようとせず、エラー文ごとClaudeに貼って相談してください。 force push(強制上書き)を勧められても、意味を確認してから実行してください。