かなり悩んで時間がかかったのでメモを残しておきます。
前提条件として、基本、Git Flowベースで作業しています。
不幸なことにガンガン開発を進めていたdevelopブランチをmasterブランチの状態まで巻き戻すことに。masterブランチにはhotfixが入ってたりもします。
調べて調べて、悩んで、相談して、調べて、以下のような手順で作業することにしました。
hotfix前のdevelopまで戻す。
$ git reset --hard 巻き戻すコミットのハッシュ
リモートのdevelopリポジトリを同じ所まで巻き戻す。
$ git push -f origin HEAD:develop
そして、hotfixについてはmasterから対象のコミットをチェリーピックでマージしてリモートリポジトリにpush(Souce Treeでやりました)。
そして、開発者諸氏にdevelopブランチをリモートから取り直すように連絡(忘れずに!)
加えて、このプロジェクトでは開発用サーバーにdevelopリポジトリから
$ git pull -rebase
でデプロイしているので、開発用サーバーのdevelopリポジトリもローカルと同じコマンドでリセットしてデプロイしなおしました。
Tags: Git