git reset は、コミットやインデックス(ステージ)を取り消すためのコマンドです。
コミット履歴を戻したり、ファイルのステージ状態を変更したりできます。
基本的にはこのコマンド1つだけ使えれば大丈夫です。
git reset --soft HEAD^
git reset <モード> <対象>
git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1
基本的にはsoftを使うのが安全です。
git reset <ファイル名>
例:
→ git add した index.js をステージから外します(ファイルの中身はそのまま)。
| モード | コミット | ステージ | 作業ディレクトリ | |------------|----------|----------|------------------| | --soft | 戻す | 保持 | 保持 | | --mixed | 戻す | 戻す | 保持 | | --hard | 戻す | 戻す | 戻す(上書き) |
git reset は履歴の巻き戻しやステージ状態の変更など、強力な操作が可能なコマンドです。
状況に応じて --soft / --mixed / --hard を使い分けましょう。