Drowsy Dog's Diary

any note, any thought

2014年2月18日
by kazoo
2 Comments

[git] masterブランチの入れ替え、的な

といっても実際に乗り変わるわけではなく。

たとえば

みたいなブランチが(名前いまいちだけど)あって、
次バージョンの仕様をいろいろ盛り込んでいる間に feature-v2.0 の歴史が master よりもずっと先に進んでしまって、
「もうこれが master でいいよ」みたいな状態のとき。

git branch -m でブランチのリネーム、git push -f で強制 push してしまえば文字通りブランチの入れ替えはできそう。しかし、おそらく複数人で作業しているとしばき倒されますねこれは。

たぶんいろいろ方法はあると思うのですが、ここでは

と、
git merge の ours ストラテジを使ってコンフリクトをすべて自分のブランチ優先で解決した後に、master 側から merge すれば綺麗に上書きしてくれました。

単純に、master 側から

だけすればいけそうな気もしたけど、

そういうもんではないらしい。。

参考:
https://www.kernel.org/pub/software/scm/git/docs/git-merge.html
http://stackoverflow.com/questions/2862590/how-to-replace-master-branch-in-git-entirely-from-another-branch
http://stackoverflow.com/questions/2303124/git-merge-s-theirs-simply