🔙

既にコミットしてしまったファイルをステージングの状態に戻す git reset --soft HEAD^

2024/09/11に公開

多くの記事があるとは思いますが例に習って備忘録です

コミットの取り消し、内容をステージングの状態に戻す

git reset --soft HEAD^

直前のコミットを取り消しつつ、変更内容をステージングエリアに保持する操作を行います。

  • git reset:コミットの履歴を操作するためのコマンドです。指定した状態までリセットできますが、オプションによってファイルやステージングエリアの扱いが異なります。

  • --soft:このオプションを指定することで、リセット後も作業内容(変更内容)がステージングエリアに残ります。つまり、ファイルは変更された状態のままですが、HEAD(最新のコミット)だけが一つ前に戻ります。

  • HEAD^:HEAD は現在の最新コミットを指し、^ はその1つ前のコミットを指します。つまり、HEAD^ は現在のコミットの親コミット(1つ前のコミット)を意味します。

1つ以上前までのコミットまで戻るには

  • HEAD^^ または HEAD~2
    • HEAD^ は1つ前のコミットを指しますが、HEAD^^ はそのさらに1つ前(2つ前のコミット)を指します。同様に、HEAD~2 も2つ前のコミットを指します。
      これで2つ前のコミットまでリセットされ、直前の2つのコミットの内容がステージングエリアに保持されます。

Discussion