LoginSignup
0

【GitHub】ローカルリポジトリの変更を誤ってリモートリポジトリのmainに直接commitしてしまったら

Posted at

今回の課題

間違えてローカルリポジトリの変更をリモートリポジトリのmainに
直接commitしてしまった場合の対処法を記事にしました。

対処手順

1)$ git logを実行

$ git logコマンドでコミット履歴を確認して、
取り消したいcommitのハッシュ値をコピーする。

commit 123456789abcdef0123456789abcdef01234567     <-こちらです
Author: John Doe <john.doe@example.com>
Date:   Fri Jan 1 12:34:56 2023 +0100

    誤ってmainにマージしてしまったcommit

commit abcdef0123456789abcdef01234567890123456
Author: Jane Smith <jane.smith@example.com>
Date:   Thu Dec 31 23:45:01 2022 -0500

    誤ってmainにマージしてしまったcommitの前のcommit

2)$ git revertを実行

上記でコピーしたハッシュ値を、$ git revertと合わせて以下のように使う。

$ git revert 123456789abcdef0123456789abcdef01234567

こんな感じでエディタが表示されるので:wqで抜ける。

Revert ""

This reverts commit 123456789abcdef0123456789abcdef01234567.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch test
# Your branch is up to date with 'origin/main'.
#
# Changes to be committed:
#	[変更点(commitを取り消す内容)が表示される]
#

以上で間違えてcommitしてしまったものを取り消すことができます!
ちなみに、この後$ git logを実行することで、revertした履歴も確認することができます。

$ git log

commit 123456789abcdef0123456789abcdef01234567
Author: John Doe <john.doe@example.com>
Date:   Fri Jan 1 12:34:56 2023 +0100

    Revert "誤ってmainにマージしてしまったcommit"

    This reverts commit

commit 123456789abcdef0123456789abcdef01234567
Author: John Doe <john.doe@example.com>
Date:   Fri Jan 1 12:34:56 2023 +0100

    誤ってmainにマージしてしまったcommit

commit abcdef0123456789abcdef01234567890123456
Author: Jane Smith <jane.smith@example.com>
Date:   Thu Dec 31 23:45:01 2022 -0500

    誤ってmainにマージしてしまったcommitの前のcommit

以上です!

まとめ

mainブランチを誤更新してしまったら、上記の方法で対処できます。

リポジトリを作成したら、最初に以下の記事のような設定をして、
mainブランチの誤更新を避けられるように注意するのが大切だなと思いました。

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
0