この記事は、Gitのリモートリポジトリに間違ってpusuしてしまったコミットを取り消して1つ前のコミットに戻す方法について書いてます。
ではさっそく紹介します!
【Git】リモートリポジトリの最新コミットを取り消す方法
手順は以下の通りです。
- 取り消したいブランチにチェックアウト
- ローカルブランチでコミットをリセット
- リモートブランチに強制プッシュ
①取り消したいブランチにチェックアウト
git checkout 〇〇
〇〇にはコミットを取り消したいブランチ名です。
現在、すでにチェックアウトしている場合はこのコマンドは不要です。
ローカルブランチでコミットをリセット
git reset --hard HEAD~1
なお、以下2点補足です。
hardオプション
このhardオプションを使用すると、現在のワーキングディレクトリとインデックスの状態がそのコミットの状態に完全に置き換えられ、それ以降の変更は失われます。
そのため、このコマンドを実行する前には、失いたくないデータがないことを確認することが重要です。
HEAD~1
「HEAD~1」は現在のHEADから1つ前のコミットにリセットするという指定です。
このコマンドを「git reset –hard HEAD~2」に変更すると、現在のHEADから2つ前のコミットにリセットすることになります。
リモートブランチに強制プッシュ
git push origin 〇〇 --force
〇〇には先ほどチェックアウトしたブランチ名(取り消したいコミットがあるブランチ名)をいれてください。
リモートブランチの変更をする場合は他の開発者に通知しよう
上記のコマンドを実行する前に、必ず他の開発者に通知し、リモートブランチの変更について合意を得るようにしましょう。
forceオプションを使用すると、リモートリポジトリの履歴が書き換えられるため、共同で作業している他の人々に影響を与える可能性があるので。
以上です!