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