概要
git
での操作で、コミットした後に「あ!間違えた!」となるのはよくあることだと思います。
そうなった時のgit操作を自分なりにまとめてみます。。
直近のコミットを訂正したい
直近のコミットを訂正したい場合には以下の手順で行います。
- とりあえず間違ったコミットは無視して、正しい変更を行う
- 以下のコマンドを実行する
git commit -C HEAD -a --amend
-C
はHEAD
のコミットメッセージを使うことを意味しています。
-c
にすることによってエディタ
が開き別のコミットメッセージを書くことができます。
なので例えばコミットメッセージを間違えたり、もっといい書き方があったと思った時は
git commit -c HEAD -a --amend
とすれば良いでしょう。
git log
でみてみると履歴が綺麗になっていると思います。
直近より以前のコミットを修正したい場合は次のコマンドを使ってください。
コミットを取り消す
コミットを取り消すにはgit revert
を使います。
これは既にあるコミットに含まれる変更を全て巻き戻す新しいコミットを1つ作り、コミットを1つ取り消します
。
使い方としては
git revert <コミット名>
こうすることで指定したコミットを取り消し、取り消した旨のコミットが1つ追加されます。
つまりは、そのコミットでの変更は取り消されますが、そのコミットのログ自体は残ります。
また、git revert
は1つしかコミットを指定できないので、複数する場合には-n
をつけます。
こうすることで取り消した旨のコミットがステージングされた状態で待ってくれます。
なので複数git revert
したい場合は
git revert -n <コミット名>
git revert -n <コミット名>
git commit -m "コミットメッセージ"
のようになります。
変更をリセットする
上記のgit revert
はコミットは取り消すが、ログは残ると記述しましたが、変更をリセットするgit reset
はログもなかったことにすることができます。
git reset --hard HEAD^
上記は直近のコミットをリセットする例です。
こうするとコミットの変更は破棄され、ログからも消えます。
git reset --soft HEAD^
とすることで、ステージングに戻すこともできます。
まとめ
git
でのコミットの訂正についてみてきました。
参考になれば幸いです。