Git4 択難易度 標準

状況

git reset --hard HEAD~1 で、必要なコミットまで消してしまった。git log にはもう出てこない。

消えたコミットのハッシュを探すコマンドは?

$ git ____$ git switch -c rescue <見つけたハッシュ>

正答

  1. log
  2. stash list
  3. status
  4. reflog

解説

git reflog は HEAD やブランチが過去に指していたコミットの履歴を手元に記録している。reset --hard で戻す前のコミットもここに残っているので、ハッシュを見つけてブランチを作れば取り戻せる。git log は今のブランチからたどれるコミットしか表示しないので、reset で外れたコミットは出ない。stash list は退避した変更の一覧、status は作業ツリーの状態で、どちらも消えたコミットは探せない。

参考: git-scm.com

reflogresetrecovery

この問題を含む Git のテストを制限時間つきで解く

Gitクイズへ