oinume journal

Scratchpad of what I learned

squash mergeの環境でCascading PRsでコンフリクトした時

最近以下のような記事を目にすることがあり、ちょうど自分もsquash mergeの環境でひとつ問題を抱えていたので、その話を自分のメモ代わりに書きたくなった。

問題とは、上にある記事のcascading PRsの話で、feature1 -> feature2 というようにbranchを派生して作った場合に、feature1 をmainにマージした後に作業ブランチを feature2 にして git rebase main すると、必ずコンフリクトが発生するので悩んでいた、ということ。

解決策としては、以下にあるようにgit rebase --onto main <last commit on feature1> feature2 をすればいいらしい。「らしい」というのはまだ自分は試してないけど、同僚がこれで「うまくいけた」と言っていたので。

stackoverflow.com

もしくはJun Mukai's blogに書いてあるような以下の方法でもいいのかもしれない。そういえば git rebase --skip って使ったことなかったな。

PR1に由来するコンフリクトは自分にとっては自明だし、ほとんどの場合にはgit rebase –skipするだけだ。