1
4

誤ってプッシュしたコミットを git revert で取り消す方法

Last updated at Posted at 2024-08-30

はじめに

今回は、私が実際の開発現場で経験した、誤ってリモートリポジトリにプッシュしてしまったコミットを git revert で取り消す方法について、まとめました。初心者の方でも安心して使える手順を紹介しますので、参考にしてみてください。

git revertとは

git revert は、Git(ソースコード管理ツール)のコマンドのひとつで、過去に行った特定の変更を取り消すためのものです。具体的には、「前にした変更をなかったことにしたい!」というときに使います。

実際の使用例

スクショのコミットメッセージ「console.logの削除」を誤ってリモートリポジトリにプッシュしたケースを想定して、取り消したい思います。

スクリーンショット 2024-08-30 20.11.56.png

リバート対象のコミットを確認

ローカルのリポジトリで取り消したいコミットのIDを git log で確認します。

% git log
commit コミットID (HEAD -> feature/revert-example, origin/feature/revert-example)
Author: author <author@example.com>
Date:   Fri Aug 30 20:10:14 2024 +0900

    console.logの削除

リバート

次に、リモートリポジトリにプッシュされたコミットを git revert で取り消します。先ほどのコミットIDを使用してリバートを実行します。

% git revert コミットID

リバートコミットの編集

git revert コマンドを実行すると、以下のようなコミットメッセージ編集画面が表示されます。

スクリーンショット 2024-08-30 20.30.44.png

この画面では、リバートのメッセージが自動的に入力されます。たとえば、「Revert "console.logの削除"」 のように、元のコミットの内容を示すメッセージが含まれます。このメッセージをそのまま使用する場合は、特に変更せずにコミットボタンを押して終了します。必要に応じてメッセージを編集することも可能です。

コミットボタンを押すと、リバートコミットが作成され、ローカルリポジトリに反映されます。この操作によって、指定したコミットを取り消す新しいコミットが履歴に追加されます。

リモートリポジトリの反映

リバートコミットがローカルリポジトリに作成された後は、それをリモートリポジトリに反映させる必要があります。この手順を行うことで、他のチームメンバーもリバートされた状態を共有することができます。

コミットボタンを押した後に表示される変更の同期ボタンを押すことで、リモートリポジトリに変更が同期されます。これにより、リバートコミットがリモートリポジトリにも反映され、リモートリポジトリの状態がローカルリポジトリと一致します。

スクリーンショット 2024-08-30 20.34.00.png

Githubで確認

GitHubで変更が正しく反映されているか確認できます。

スクリーンショット 2024-08-31 5.36.31.png

上の画像のように、GitHubのコミット履歴を確認すると、リバートコミットが追加されていることが分かります。コミットメッセージとして「Revert "console.logの削除"」と表示されているため、指定したコミットがリバートされたことが確認できます。

ここで重要なのは、git revert で取り消したいコミットの変更は元にできるが、履歴の「console.logの削除」を行なった履歴は残るということです。

さらに、リバートされたコミットに関連する変更が正しく反映されているか、ファイルの変更履歴を確認することも可能です。

スクリーンショット 2024-08-31 5.32.47.png

この画面では、リバートコミットによって元に戻された変更が表示されています。リバートしたい変更が正しく取り消されているかどうかを、ここで確認してください。

おわりに

これまでは、誤ってプッシュしたら、リモートリポジトリのmainブランチを参照しながら、手動で該当箇所を直してましたが、コミット履歴を綺麗に保つうえで、便利なコマンドを知ることができました。

1
4
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
4