git branchのマージ


githubを眺めていて自分のbranch(mybranch1)上で開発している間にmaster上でも共通のファイルが変更されているのを発見してしまった場合の対応。
もしローカルのmasterが最新でなければ以下のコマンドで更新
git branch master
git pull origin master

最新のmasterを自分のブランチに取り込む
git checkout mybranch1
git merge master

mergeされたcommit記録を確認
git log -p filename1
取り込んだ変更をリモートへpush
git push origin mybranch1

リモートに開発用branchがもう一つある場合(mybranch2)
git branch -a
でbranchの確認。
ローカルにリモートのmybranch2が無い場合はgit fetchで取得

そのリモートにあるgitブランチをローカルにcheckout
git checkout -b mybranch2 origin/mybranch2
その後はmybranch1と同様の作業をする。

一方master側へ同じファイルのみ変更をpushしたい場合(例えばREADME.mdの変更など)、cherry pickというコマンドを使う。

masterブランチになる
git checkout master
git cherry-pick
git push origin master