LoginSignup
1
0

More than 3 years have passed since last update.

コミット訂正のgitコマンドをまとめる

Posted at

概要

gitでの操作で、コミットした後に「あ!間違えた!」となるのはよくあることだと思います。
そうなった時のgit操作を自分なりにまとめてみます。。

直近のコミットを訂正したい

直近のコミットを訂正したい場合には以下の手順で行います。

  1. とりあえず間違ったコミットは無視して、正しい変更を行う
  2. 以下のコマンドを実行する
git commit -C HEAD -a --amend

-CHEADのコミットメッセージを使うことを意味しています。
-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でのコミットの訂正についてみてきました。
参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0