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 stashgit checkout <正しいブランチ>git stash pop | 一時退避させて、正しいブランチに作業を移せる |
| 別のブランチの特定のコミットだけこっちに持ってきたい | git cherry-pick <コミットID> | 欲しいコミットだけを取り込める |
git reset --hard をやりすぎて履歴が消えた | git reflog でID確認後、git reset --hard <確認したID> | reflogに残っている地点へ戻せる |
注意点
git reset --hard は作業内容を消す操作。
実行前に残したい変更がある場合は、git status で対象を確認する。