「reset」でコミットを取り消して無かったことにする
git reset [option][打ち消したいコミットID]
HEADでコミット指定する場合
git reset [option] HEAD^
git reset のオプション
git reset には3種類のオプションがあります。
それぞれ使用するタイミングを間違えないようよく理解して使うようにしましょう。
-
--soft-
commitのみ取り消し (HEADの位置のみが修正される) - ディレクトリの内容はそのままでコミットのみを取り消したい場合に使用
-
-
--hard(最も強力なオプション)- 全部を取り消し(HEADの位置・インデックス・ワーキングツリーが修正される)
- ディレクトリの内容も書き換えコミット取り消したい場合に使用
-
--mixed-
commitとaddの取り消し(HEADの位置・インデックスが修正される) - ディレクトリはそのままで、
git addを取り消したい場合に使用
-
「--revert」でコミットを打ち消す
git revert [打ち消したいコミットID]
revertはコミットを打ち消すと言う表現より、逆の内容をコミットしてくれています。
resetのように取り消すのではなく、「逆向きのコミット」として履歴が残ります。
もし間違えてrevertしたとしても、もう一度revertし直せば問題ありません
「--amend」で直前のcommitを上書き修正する
git commit --amend
- 「単に直近のコミットメッセージを変更したい」
- 「コミット内容を後から追加したい」
などの場合に使用すると便利
現在の状態をよく確認しよう
間違ったコミットの防止のためにも、自身の編集が完了したらコミットの前に現在の状態を確認しましょう。
-
git status
現在の状態を表示します。変更があったファイルを確認することができます。 -
git diff
ソース内でどのような変更があったのか、差分を確認することができます。 -
git log
コミット履歴を確認することができます。