git-flowでfeatureブランチ作ってcommit作ってfeature finishしてdevelopブランチにno-ffマージされたあとpushしたらrejectされてpull rebaseするとno-ffマージがなかったことになるの辛い
— えんこちゃん (@arcright) 2014年11月27日
featureブランチでrebaseしろって話なんだろうけど常にremoteのdevelopの顔色伺わないといけないし辛い
— えんこちゃん (@arcright) 2014年11月27日
Git-FlowはA successful Git branching modelを補助するツールで原則ブランチのマージはno-ffマージが行われるんだけど、いざマージしてpushしようとしたら他の誰かが更新していてpullしなければならない場合がある。
リモートブランチとの3点マージはしたくないので(ここがA successful Git branching modelと噛み合ってないのかも)pull rebaseをするんだけど、そうするとマージコミットが消滅してしまってなんのためにフューチャーブランチきってno-ffマージしたんだ...となってしまっている。
この悩みに対する解は現在無い
2014/12/29追記
- rオプションが良さそう。調べてみましょう。
まとめ
git flow feature finishした後にリモート更新で気づくと悲しい問題への対処法 - cynipeと読む
- git flow feature finishする時は-kするとフィーチャーブランチが消えない
- git flow feature finishする時に-rするとフィーチャーブランチ上でrebaseした上で--no-ffなマージを行ってくれる
- この2つを覚えておけばフィーチャーブランチの再現をしなくて済んでハッピー