結論
作業メモ。結論を先に書く。
以下のコマンドをすぐに打とう。
git reset --soft HEAD^
GW中にhooksでpre-commitの検証を行っているときにアホほど打ったので、覚えてしまった…。
--soft
--softだと、「commitをしなかった状態」なので、編集していたファイルは残る。つまり、「インデックスにステージングした状態」に戻す。
間違いがなくて、安心だと思います。
--hard
これをgit reset --hard HEAD^
にすると、「commit自体をなかったことにして、1つ前のcommitの状態に戻す」ことになるので、commitしたファイル も消えてしまいます。
一挙にまるまるリセットしたいときは、--hard
で良いと思いますが、ちゃんと考えてからやったほうが良いでしょうね。
つまり、以下の流れを一挙にやるイメージです。
git reset --soft HEAD^
git reset HEAD .
- 対象ファイルを削除
--mixed
git reset --mixed HEAD^
は、上の箇条書きで言うところの2.に当たる部分までやるという感じです。なんだか中途半間な感じがして、あまり使わない気がします。