git-flow 式

development な branch と master な branch で、という事になってしまいました。
feature は development に merge するんですが、それらを master に merge する時のソレが悩ましかったり。現時点では

$ git diff master..development

とか

$ git format-patch master..development -o ~/tmp/hoge/

みたいな事をする方向なんですがどうなるか。

そもそも的に

開発版とリリース版で異なる部分があるはずなので出力されるパッチに手を入れないといけなくなるのは分かってるのですが、こうしたケイスではどうするべきなのかな。
と思ったところで master から branch 作成して試験してみれば良い事に気づくなど。
あと、基本的に branch 同士で diff 見る癖が付いてしまいました。

試験してみた

つうか、

  • 単純に merge して conflict した所を直す
  • format-patch で patch を作成してアレな記述を除く

のとどちらが良いのかとorz
つー前に、差分が発生してるあたりに手が入ってしまう羽目になるとなかなかに厄介。
とりあえず試験な branch 作成して単純 merge してみたのですが、賢い Git 君は conflict して欲しい部分を綺麗に merge しちゃいました。これはマズい。
とりあえず

$ git reset --hard HEAD

で巻戻して、patch 作成。3つ作成されましたが必要があるのは二つ。それらを git am したら微妙な文句を言われつつも何とかなっているご様子。

その後

master 側で微妙なリクエストな作業を直接してしまい、commit を rebase で纏めたら叱られてしまいました。とほほ。復旧ってことで

  • master から branch 作成
  • master の歴史を巻戻し
  • 作成した branch と master の差分を見つつ commit 作成

て結局手動復旧かよorz

こうしてみるに

やはり Github Flow 無敵ですね。