【Git】Gitでリモートでpushしてしまったコミットを打ち消すrevert

git revertコマンドでリモートにpushしてしまったコミットを打ち消すことが出来る

リモートにpushする前でローカルブランチの変更を取り消したい場合はresetなどでHEADを取り消したり、リモートから強制pullで上書きで対処できる。
※git reset --hard origin/masterでローカルブランチを強制的にリモートで書き換える。


リモートにもうpushしてしまった時に取り消すことが出来るのがrevert。


指定したコミットを取り消した内容の新しいコミットを作成してくれます。


ポイントは取り消しのコミットを作成するというところ。Gitの記録には新しいrevertコミットのログが残ります。

git revertをするまえにgit logでコミットログを確認する


下記のようにgit logコマンドを実行してコミットログから取り消ししたいコミットのコミットIDを確認する。

[root@xxx-xxx]git log
commit x12345xxxxxxxxxxxxxx
Author: root <root@example.com>
Date:   Fri Jun 25 11:25:00 2023 -0926

    定常作業

commit x678910xxxxxxxxxxxxxx
Author: root <root@example.com>
Date:   Fri Jun 24 11:25:00 2023 -0926

    定常作業事前作業

今回は例として定常作業の"x12345xxxxxxxxxxxxxx"を取り消すものとする。

コミットIDを引数にgit revertコマンドを叩く


先にgit branchで向いている先のブランチが正しいことを確認しておく。

[root@xxx-xxx]git branch


実際にgit revertを実行する。

[root@xxx-xxx]git revert x12345xxxxxxxxxxxxxx

git revertを実行するとコミットが作成されるのでコメントを入力するviエディタが起動します。


メッセージを入力して保存すればコミットが行われます。


そのあとリモートにpushすることでリモートに取り消しコミットが反映されます。

[root@xxx-xxx]git push origin master