方法
以下2パターン。
両方とも、現在のコミットから1つ前のコミット(HEAD^
)にリセットするコマンドですが、影響範囲が異なります。
1. git reset --hard HEAD^
- コミットを一つ前の状態に戻す
- コミット前の変更は全て破棄される(全てのファイルが一つ前のコミットの状態に戻る)
2. git reset --soft HEAD^
- コミットを一つ前の状態に戻す
- コミット前の変更したファイル(ステージングされたファイル)は保持される
※コミットをやり直したいとき(例えばコミットメッセージを修正したい場合)に便利
まとめ
-
--hard
: すべての変更を破棄して、過去のコミットに戻す。 -
--soft
: コミットだけを取り消し、ステージングされた変更やワーキングディレクトリの変更は保持。