👻
git resetとは
reset
とは
1. 現在のコミットから指定した過去のコミットに紐づけ直すという動作をします。
コミットの履歴を確認する場合は、git log
及びgit reflog
コマンドで確認できます。
2. コミットの紐づけ直し
例えば、A,B,Cコミットがあります。現在のコミットがCでBのコミットに戻したい!!
そんなときにgit reset
コマンドを実行すると、現在のコミットがCからBに戻ります。
下記のコマンドを実行しgit log
で履歴を確認するとコミットCが無くなりコミットBが現在のコミットとなっています。
このコマンドは、現在のコミットから1つ前の場合のみ使えます。
git
git reset
また、CからAに戻したい!!といった2つ以上前に戻りたい場合は、下記のコマンドを実行します。
git
git reset Aコミットのハッシュ値
3. オプション一覧
-
git reset --hard 該当のハッシュ値
- コミット、インデックス、ファイルの変更を全て削除
-
git reset --mixed 該当のハッシュ値
- コミット、インデックスを削除。ファイルの変更だけは残す
- git resetでオプションを指定しないときのデフォルト
-
git reset --soft 該当のハッシュ値
- コミットだけを削除する。インデックス、ファイルの変更は残す
Discussion