git reset 使い方
ワークツリー、インデックスを HEAD に戻す
git reset --hard
ワークツリー、インデックスの変更は消えるので注意する。
ワークツリー、インデックスは変更しないで HEAD のコミットを取り消す
git reset --soft HEAD^
その後にログメッセージを再利用してコミットするには
git commit -c "ORIG_HEAD"
とする。
HEAD のコミットを取り消し、ワークツリー、インデックスも同じ状態にする
「–hard」オプションをつけると ワークツリーに対する変更も取り消される。
git reset --hard HEAD^
ワークツリーはそのままでインデックスの変更を取り消す
git reset --mixed
とするとインデックスの変更だけが取り消される。 「–mixed」オプションは git reset のデフォルトになっているので
git reset
のように省略できる。
マージやリベースを取り消す
マージ (git merge) やリベース (git rebase) を実行し終えたときに その操作を取り消したいときがある。
git reset --hard ORIG_HEAD
とすれば良い。
もちろん、ORIG_HEAD が望んだコミットではない場合は 困ったことになるので注意。
参考
- man git-reset