👻

git resetとは

2023/12/06に公開

1. resetとは

現在のコミットから指定した過去のコミットに紐づけ直すという動作をします。
コミットの履歴を確認する場合は、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 該当のハッシュ値
    • コミットだけを削除する。インデックス、ファイルの変更は残す

参考サイト

git reset 解説

Discussion