gitリポジトリをロールバックする

gitリポジトリをロールバックする手順を紹介します。

概要

gitリポジトリに間違ったファイルやコードをコミットしてしまった場合、さらにリモートリポジトリにプッシュしてしまった場合、ロールバックしたいことがあります。gitリポジトリでのロールバックの手順を紹介します。

ローカルリポジトリにコミットしたものを破棄する場合

ローカルリポジトリへのコミットを取りやめる場合は、以下のコマンドを実行します。

git reset --hard <commit_ID>

リモートリポジトリへのプッシュをロールバックする場合

リモートリポジトリへプッシュしてしまったものは、他のメンバが作業を始めてしまう可能性があるため、過去の状態への巻き戻しはできません。(補足のgit resetを利用すれば可能)
以下のコマンドを実行して、プッシュした内容と逆の処理をプッシュすることで、ロールバックします。

git revert <commit_ID>

マージされている場合

マージされている場合は次のコマンドを実行します。

git revert -m 1 <commit_ID>


下図のviライクなエディタが起動します。":q"を入力して終了すると、revert処理が実行されます。
gitリポジトリをロールバックする:画像1

補足
作業時には、別途リモートリポジトリから、作業用のディレクトリに、新たにcloneしてから作業したほうが良いです。
補足:git reset を利用する場合
git reset コマンドを利用すると、プッシュしてしまったことを無かったことにすることもできます。reset自体を取り消すことはできず、他のメンバが作業を始めてしまう可能性があるため、ややリスクの高い方法です。git reset を利用してプッシュやコミットを無かったことにする場合はこちらの記事を参照してください。
AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2016-04-22
Copyright © 1995–2025 iPentec all rights reserverd.