Gitで失敗した時の復旧コマンド集

Gitで操作を間違えた時に、どのコマンドでどの状態へ戻るのかを整理した。 作業内容を残す操作と、完全に消す操作を取り違えないための確認用メモ。

失敗解決コマンド状態
直前のコミットメッセージを間違えたgit commit --amend -m "正しいメッセージ"直前のコミットが上書きされる
ファイルを間違えて git add してしまったgit restore --staged <ファイル名>ステージングから外れる。作業内容は残る
コミットしたけど、やっぱり1つ取り消したい。変更は残すgit reset --soft HEAD~1コミットだけ取り消され、ファイルはステージング状態に戻る
コミットも変更内容もすべて無かったことにしたいgit reset --hard HEAD~1直前の変更ごと完全に消える
作業中にファイルを rm してしまったgit restore <ファイル名>最後にコミット、またはステージした状態に戻る
違うブランチでコードを書いていることに気づいた。未コミットgit stash
git checkout <正しいブランチ>
git stash pop
一時退避させて、正しいブランチに作業を移せる
別のブランチの特定のコミットだけこっちに持ってきたいgit cherry-pick <コミットID>欲しいコミットだけを取り込める
git reset --hard をやりすぎて履歴が消えたgit reflog でID確認後、git reset --hard <確認したID>reflogに残っている地点へ戻せる

注意点

git reset --hard は作業内容を消す操作。 実行前に残したい変更がある場合は、git status で対象を確認する。