コミットの取り消し
直前のコミットをなかった事にするには
git reset --hard HEAD^
を叩けばOK。
-
--hard
オプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。 --soft
オプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。HEAD^
:直前のコミットを意味する。-
HEAD~{n}
:n個前のコミットを意味する。-
HEAD^
やHEAD~{n}
の代わりにコミットのハッシュ値を書いても良い。 - gitのv1.8.5からは、「HEAD」のエイリアスとして「@」が用意されている。
-
HEAD~
とHEAD^
と@^
は同じ意味。 -
HEAD^^^
とHEAD~3
とHEAD~~~
とHEAD~{3}
と@^^^
は同じ意味。
-
コミットの打ち消し
作業ツリーを指定したコミット時点の状態にまで戻し、コミットを行う(コミットをなかったことにはせず、逆向きのコミットをすることで履歴を残す)には、
git revert コミットのハッシュ値
を叩けばOK。
コミットの上書き
直前のコミットに上書きするには、
git commit --amend
を叩けばOK。
- コミットメッセージを変更したい時よく使う。
- 「
git rebase
失敗した時、コンフリクトを避けるためにコミットを上書きする」という使い方もよくする。