概要
リモートリポジトリにあるmasterブランチのコミットを取り消す場合を考えます。
手順としては以下のような感じになります。
リモートリポジトリからmasterをpullしておく
普通にpullしてきます。
$ git pull origin master
pullしてきたmasterに対して、この後コミット取り消し作業を行います。
リモートリポジトリにバックアップとしてmaster_bakブランチを作成する(オプション)
念のため、バックアップを残しておきたい場合は、以下のようにしてmaster_bakを作成します。
$ git push origin master:master_bak
ローカルにあるmasterブランチに対してコミットを取り消す作業をする
git logとかを見て、戻したいところまでのハッシュ値やタグなどを調べます。
そして、git resetで巻き戻します。
$ git reset {ハッシュ値やタグ}
リモートリポジトリにあるmasterブランチを削除する
以下のコマンドで、リモートリポジトリにあるmasterブランチを削除します。
$ git push origin :master
gitのバージョンによっては、デフォルトでこの処理は拒否されます。
そうした場合は、リモートリポジトリにあるconfigファイルに以下のような設定を追加します。
[receive]
denyDeleteCurrent = 0
問題なければmaster_bakブランチを削除する(オプション)
以下のようにして、master_bakブランチを削除します。
$ git push origin :master_bak