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 で対象を確認する。