git reset <mode> <commit>
現在のHEADをcommitに変更し、オプションによってindexとworking treeも変更する。
--soft
- indexとworking treeはそのまま残す。
--mixed
- indexをcommitに変更し、working treeはそのまま残す。
--hard
- index、working treeをcommitに変更する。
--merge
- indexをcommitに変更、working treeのHEAD・commit間の差分を反映する。
- working treeのunstagedな変更点は維持される。
- indexとcommit、indexとworking treeの間で異なる変更点があった場合は失敗する
- コンフリクトしたマージをリセットする用途を想定
--keep
- indexをcommitに変更、working treeのHEAD・commit間の差分を反映する。
- 更新されるファイルに他の差分があった場合は失敗する。