(リモートリポジトリからローカルにcloneもしくはpullしてきた) masterブランチから作業ブランチを作成し開発後、その作業ブランチをリモートにpush、(リモートのmasterブランチにmergeするために) pull requestを出す際、リモートのmasterブランチで他の開発が進んでおりローカルのmasterブランチと異なる場合がある。
この状態でpull requestを出しgithubで差分を確認すると、作業ブランチを作成した時点でのmasterブランチとの差分を表示してしまう。(最新のmasterブランチとの差分を比較できないし、テストも出来ない)
そこでリモートリポジトリにpushする前にgit pull --rebase
を行う
#作業ブランチで行う $ git pull --rebase origin master #origin→リモートリポジトリを表す #master→リモートリポジトリのブランチを表す
これを行うとコマンドを実行したブランチにリモートから取ってきた最新のmasterブランチをrebaseする。
rebase以外にもmasterブランチでgit pull
してgit checkout 作業ブランチ
git merge master
で作業ブランチを作成した時点以降の変更を取り込むことは可能
参考 https://qiita.com/makua/items/7aa1f4fa02ef9ab1f9d9 https://www.slideshare.net/kotas/git-15276118 https://kray.jp/blog/git-pull-rebase/ https://qiita.com/310ma3/items/e0ec74b47c6c219f2a8b