tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

git pull --rebaseについて

(リモートリポジトリからローカルに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