今回の課題
間違えてローカルリポジトリの変更をリモートリポジトリの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ブランチの誤更新を避けられるように注意するのが大切だなと思いました。