間違えた変更を安全に戻す

入門 | 12分 で読める | 2026.06.18

公式ドキュメント

今回やること

この記事では、Gitで間違えた変更を安全に戻す練習をします。

取り消し操作の前には、必ず git statusgit diff で何を戻すのか確認します。

前提条件

  • 学習用のGitリポジトリがある
  • 重要な変更が残っていない
  • git statusgit diff が使える

Step 1: 未コミット変更を作る

echo "wrong text" >> README.md

状態を確認します。

git status
git diff

Step 2: 未コミット変更を戻す

README.md の変更を戻します。

git restore README.md

戻ったか確認します。

git status

Step 3: ステージ済み変更を作る

echo "staged text" >> README.md
git add README.md
git status

この状態では、変更がステージに載っています。

Step 4: ステージから外す

git restore --staged README.md

これは変更自体を消すのではなく、ステージから外します。

git status

Step 5: 変更自体も戻す

git restore README.md

これで作業ツリーの変更も戻ります。

Step 6: 直前のcommitを打ち消す

共有済みのcommitを取り消す練習では、revert を使います。

git log --oneline

対象のcommit hashを確認して、次を実行します。

git revert <commit-hash>

revert は、対象commitを打ち消す新しいcommitを作ります。

push済みのcommitを取り消すなら、履歴を書き換えないrevertが安全です。

Step 7: 危険操作を知る

次のコマンドは、作業中の変更を消す可能性があります。

git reset --hard

学習中でも、意味を理解するまでは安易に使わないようにします。

よくあるエラー

状況よくある原因確認すること
変更が消えたrestorereset --hard を使った実行前にdiffを見る
ステージから外しただけだった--staged は変更を消さないgit status を確認
revertでコンフリクトした後続変更と衝突コンフリクトを解決する
push済み履歴を書き換えたresetしてforce pushした共有履歴ではrevertを検討

まとめ

未コミットの変更は git restore、ステージ済み変更を外すには git restore --staged、共有済みcommitを取り消すには git revert を使います。取り消し操作の前には、git statusgit diff で対象を確認します。

参考リソース

← 一覧に戻る
PR
PR
PR
PR