なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

BitBucketでSync branchするときの方法

Bitbucketで分岐元ブランチのコミットが進んだ場合、こんな表示が出る

f:id:panzer-jagdironscrap1:20160828183602p:plain

$ git checkout <hash>
$ git merge remotes/origin/<branch>

実際この操作だけだと、mergeしたソースをpushできない。

Merge detached HEAD back to origin/master – Git

cmatskas.com

このサイトを参考に、

$ git checkout <hash>               # 現状のブランチの最新をdetached HEAD状態で取得
$ git merge remotes/origin/<branch> # 取り込み対象を指定してmerge → "remotes/origin/<branch>"
$ git checkout –b temp              # detached HEAD 状態からブランチを新しく作る
$ git branch   –f master temp       # <temp>ブランチを起点にしてmasterブランチを更新する(上書き)
$ git branch   –d temp              # <temp>ブランチを削除
$ git push origin master            # pushして履歴を再構成する

force pushはしなくてもよいようだ。この手順通りに操作を行えば、分岐元ブランチの変更がすべて現状のブランチに適用される。

nantonaku-shiawase.hatenablog.com