親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
今日の作業時間半分くらい費やしてしまった…(;ω;)