KITCHEN DRINKER

主にAndroid開発メモとか

親branchをsquash margeしたら子branchで大量のdiffが出たとき

Git力弱すぎぃで反省したのでメモ

squash で マージをすると複数のコミットが1コミットに纏めてマージされるのですっきりして良い。

だけど、こんな場合、

master
  |--A
      |--B

masterからAのbranchをつくり諸々コミットする。

Aで全体に影響する大きな変更をしているため、BのbranchをAからきる。

Aをsquashでマージする。

と、Bとmasterの間に大量のdiffが・・・なぜ!😱

理由は、 squash でのマージは、今までのAのコミットと別物として上書きされて扱われるので、 Bに入ってるAのコミットはmasterにマージされたAのコミットとは別物扱いになってしまう。

焦ってgit rebase masterとかやりだしたけど、Aのコミットが多く果てしない作業に…


しかし、これで解決することがわかった

git rebase --onto master A


今日の作業時間半分くらい費やしてしまった…(;ω;)