開発用ブランチにMasterブランチの最新コードを取り込む
開発用(作業用)のブランチを切って開発している時に、最新のmaterの更新内容を開発用ブランチに反映したい時がある。
Tortoise-SVNとかだと、確か右クリック→更新
みたいなことをすれば、すぐに反映できた気がするが、gitでのやり方をメモしておく。色々調べて実践してみたが、どうやらgit rebase master
をして、git push origin 開発ブランチ名
などをすると自分のプルリクエストのcommit
の画面に他人のcommitが混ざるみたいだ(3回くらいそういうことをやっちまったので良い加減メモに残す)
そのため、GtiHubで自分のプルリクエストのcommit
の画面に他人のcommitを混ざらないようにして開発用ブランチにMasterブランチの最新コードを取り込むには以下のようにやれば良さそうだ。
※ もし、作業途中のものでcommit出来るものがあればcommitしておく # masterブランチへ移動 git checkout master # git pullでmasterを最新に git pull origin master # 開発用ブランチへ移動 git checkout 開発用ブランチ # mergeコマンドでmaserの内容を取り込む git merge origin master
これでもし、コンフリクト(競合)が発生した場合は個人的には、
- コンフリクトしたファイルはmaster側の更新内容を反映させる(自分の更新内容は消える)
- git commit でコンフリクトを解消する
- コンフリクトしたファイルに自分の更新内容を反映させる(git diffなどで差分を見ながら行う)
- 自分の更新内容をcommitする
- git push origin 開発用ブランチ
とやれば、競合は解決、自分の更新内容が反映される
GitHub上のプルリクエストでも競合した時に、resolve conflicts
ボタンで競合を解決できるみたいだが、
個人的にはこっちのやり方がやりやすいなと思った。