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

Tags of current page