状況
git reset --hard HEAD~1 で、必要なコミットまで消してしまった。git log にはもう出てこない。
消えたコミットのハッシュを探すコマンドは?
$ git ____$ git switch -c rescue <見つけたハッシュ>正答
- log
- stash list
- status
- reflog
解説
git reflog は HEAD やブランチが過去に指していたコミットの履歴を手元に記録している。reset --hard で戻す前のコミットもここに残っているので、ハッシュを見つけてブランチを作れば取り戻せる。git log は今のブランチからたどれるコミットしか表示しないので、reset で外れたコミットは出ない。stash list は退避した変更の一覧、status は作業ツリーの状態で、どちらも消えたコミットは探せない。
参考: git-scm.com
この問題を含む Git のテストを制限時間つきで解く
Gitクイズへ