🔙
既にコミットしてしまったファイルをステージングの状態に戻す git reset --soft HEAD^
多くの記事があるとは思いますが例に習って備忘録です
コミットの取り消し、内容をステージングの状態に戻す
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