gitでmasterを過去のある位置に戻すには - uehatsu's tech blog

gitで作業していてmasterで進めていたもののリリーススケジュールが変わったり、仕様の見直しなどで現在の作業履歴は残したまま過去のある位置にmasterを巻き戻したい事があります。
git revertを使って一つ一つ作業を消しても良いのですが、そうするとログは汚いし、見た目巻き戻った事になっていても後でマージし直したりする時にこれまた面倒な事に。そこで以下のような方法で巻き戻しを行います。

$ git checkout master
$ git checkout -b dev_foobar
$ git push origin dev_foobar
$ git branch -D master
$ git checkout 2ee2030a6367f18d9948e92767262f20d7bf60f6
$ git checkout -b master
$ git push -f origin HEAD:master

まずmasterブランチの先頭にcheckoutし、作業中のブランチをdev_foobarとして保存します。
その後ローカルのmasterを削除し巻き戻したい場所にcheckout。
新規にmasterブランチを作成し、forceオプションを付けてoriginにpushします。

これでmasterを2ee2030a6367f18d9948e92767262f20d7bf60f6の位置まで巻き戻せました。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) 大塚 弘記

技術評論社 2014-03-20
売り上げランキング : 1912


Amazonで詳しく見る
by G-Tools
Gitポケットリファレンス
Gitポケットリファレンス 岡本 隆史 武田 健太郎 相良 幸範

技術評論社 2012-07-10
売り上げランキング : 18940


Amazonで詳しく見る
by G-Tools
 
カテゴリ

Who is uehatsu?

uehatsu

アーカイブ

Facebook page