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