Git4 択難易度 基礎

git reset --hard HEAD~1 を実行すると何が失われる?

正答

  1. 直前のコミットと、作業ツリーの未コミット変更
  2. 直前のコミットだけ。作業ツリーの変更は残る
  3. 作業ツリーの変更だけ。コミットは残る
  4. 何も失われず、HEAD の表示が変わるだけ

解説

--hard は HEAD を 1 つ前に動かし、ステージングと作業ツリーもその状態に強制的に合わせる。直前のコミットの内容だけでなく、まだコミットしていない編集もすべて消え、こちらは reflog でも復元できない。コミットは取り消しつつ変更を作業ツリーに戻したいなら --mixed(既定)、ステージに残したいなら --soft を使う。実行前に git status で未コミット変更が無いことを確認する習慣をつける。

参考: git-scm.com

resetcommit

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

Gitクイズへ