Webエンジニアのメモ帳

技術的な話を中心に書いています。

【Git】git commit --amendを取り消す方法

short answer

git commit --amendは、以下で取り消すことができます。

git reset --soft HEAD@{1}

解説

git resetコマンドを使うことで、HEADを移動させることができます。

HEAD@{1}はHEADの1つ前、つまり直前のコミットのことを指します。

また--softオプションをつけると、インデックスはそのままの状態で単にHEADを戻す、つまりgit commit --amendの前にgit addを実行した直後の状態に戻るわけです。

なお--softオプションをつけない場合は、インデックスも戻ってしまいます。つまり、変更はワーキングツリーには存在していますが、インデックスには反映されていない(git addされない)状態に戻ります。