操作ログ

メシの仕度をしつつ云々。手順は直前エントリに控えたものです。

master を backup

とりあえず master に移動して

$ git checkout master

バックアップな branch を作成。

$ git checkout -b master.backup.20130923

master 巻戻し

最新から 8 つステ。一気にヤると怖いので 4 つづつくらい、て

git reset --hard HEAD~4

したら 5 こ巻き戻ったぞorz
これ、merge commit 入りだと話がアレなんですね。とりあえず一つづつ、がオススメかも。

feature branch の整理

こちらは commit 二つ分を纏める形で以下。merge commit は無いので話は簡単ですね。

$ git rebase -i HEAD~2

こちらはさくっと完了。念のため試験パスするか確認するなどして次。

晩メシ製造完了して燃料入れつつ続行

master に merge か。ついでに github にも。で、その後に staging な branch を作成。

$ git checkout master
$ git checkout -b staging

で、バックアップした heroku 用のソレと diff してみるか。

$ git diff master.backup.20130923 staging

差分は

  • config/environments/production.rb のホスト名
  • config/initializers/devise.rb の config.allow_insecure_lookup = true

下のは master に盛り込んでおいた方が良さげ感。feature に盛り込んで順に merge するか。ホスト名は staging なナニのみ、という事で。

heroku

リポジトリ初期化はどうすりゃ良いのかな。確認してみたら rollback できる模様。先頭まで巻戻して push してみようかな。あるいは

$ git push heroku :master

して云々?

 !     Push rejected, cannot delete master branch

むむ。つうかこれって merge してみれば良いのか。今は

  • master.backup.20130923 からコピィで作った staging
  • それを元に作った master

なのか。では以下。

$ git fetch heroku
$ git merge heroku/master

を、conflict した。

CONFLICT (content): Merge conflict in config/initializers/devise.rb
Automatic merge failed; fix conflicts and then commit the result.

以下なカンジ。

<<<<<<< HEAD
=======
  config.allow_insecure_token_lookup = true
>>>>>>> heroku/master
end

なるほど。つーことはこの差分を吸収すれば良いのだな。ということは

  • staging な branch に上記の差分を盛り込む
  • master は master.backup から戻す
    • 戻したら master.backup は削除
  • いまの staging はまだ master.backup.20130923 の状態

ということで追加な要件を feature に盛り込んで云々する準備ができたのかどうか。
そして feature を deploy する用意ができたのであれば

  • staging に merge
  • master の backup を作成
  • staging を master にコピィ
  • deploy

という流れなのかどうか。

とりあえず

勢いがついてきたので feature な盛り込みでもくもくな方向。

盛り込みログ

上記メモを取得した時点で居るのは master な branch なので

$ git stash

して staging に移動して stash pop なのか。

$ git checkout staging
$ git stash pop

駄目だ。とりあえず master はステるので commit 作ってしまえ。

$ git add config/initializers/devise.rb
$ git commit
$ git checkout staging
$ git merge master --no-ff

で、branch 削除はどうだっけ。

$ git branch -d master
$ git branch -m master.backup master

これで feature な対応をすれば良いのか。