git reset --soft HEAD~1 を実行した後の状態は?
正答
- コミットは取り消され、変更は未ステージに戻る
- コミットは取り消され、変更はステージに残る
- コミットも変更もすべて消える
- コミットは残り、ステージだけが空になる
解説
reset は 3 段階で、--soft は HEAD(ブランチの指す先)だけを動かし、ステージングと作業ツリーは変えない。そのため取り消したコミットの変更はステージ済みのまま残り、メッセージを変えて再コミットするのに向く。--mixed(既定)はステージもリセットして変更を未ステージに戻す。--hard は作業ツリーまで戻すので変更が消える。直前のコミットに追加したいだけなら commit --amend の方が簡単。
参考: git-scm.com
この問題を含む Git のテストを制限時間つきで解く
Gitクイズへ