GitHubにあるリモートリポジトリを特定の場所まで戻す方法

公開日:
目次

毎回忘れるのでメモ。

特定のコミットを確認

まず、戻したいコミットを確認します。

コミットハッシュを確認する方法として、ローカルリポジトリのログ表示とGitHubのコミット履歴を確認する方法があります。

どちらか好きな方法で確認してください。

ローカルリポジトリのログ表示

Gitのログを表示するには、以下のコマンドを使用します。

git log

これにより、コミットのハッシュやメッセージのリストが表示されます。

戻りたいコミットのCommit ○○と書かれた最初の7文字のハッシュ(例: abc1234)をメモしておきます。

GitHubのコミット履歴

GitHubのリモートリポジトリにアクセスし、「○○ Commits」をクリックしてコミット履歴を確認します。
Image from Gyazo

戻りたいコミットのハッシュを確認し、メモしておきます。
Image from Gyazo

リモートリポジトリを特定のコミットまで戻す手順

戻したいコミットにリセット

リモートリポジトリを特定のコミットに戻すためには、git resetコマンドを使用します。ソフトリセット、ハードリセット、ミックスリセットのいずれかを選択できますが、ここではハードリセットを例とします。

git reset --hard abc1234

このコマンドは、指定したコミットまでリポジトリの状態を戻し、その後の変更をすべて消去します。

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

ローカルリポジトリが戻されたら、次にリモートリポジトリにその変更を反映します。強制的にプッシュするには、以下のコマンドを使います。

git push origin HEAD --force

--forceフラグを追加することで、リモートリポジトリに強制的にプッシュされます。

この操作は注意が必要で、他の開発者が影響を受ける可能性があるため、事前にチームでの合意を得てから行ってください。

4. 変更の確認

GitHubのリモートリポジトリにアクセスし、コミット履歴が期待通りになっているかを確認しましょう。