ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

git で 特定のリモートレポジトリ ブランチを、別名のローカルレポジトリ ブランチから pull

git の使い方、いまだに悩む。
vim 使えないから、conflict したときも vimdiff が使いづらくてどうしたものかと。

それはおいといて、
例えば master と newmodule にブランチ分けてるときに、
うん、「newmodule がいい感じにできた。master に組み込もう」ってマージするのは

git checkout master
(master branch に移動して、)
git merge newmodule -m "newmodule の機能(通話機能を追加)を反映"
git push

とでもしておけばいいんだけど、
複数PCで作業してるとたまに、リモートの master branch の内容を
ローカルの newmodule branch に反映したい、なんて時がある。

でもふつうに git pull しても、当然リモートの newmodule branch の中身が参照されてしまう。
リモートの特定ブランチを参照したいときはこうだ。

git pull origin master:newmodule --rebase

リモートブランチ名を左に、ローカルブランチ名を右にして、あいだをコロン( : )で挟む。

git pull origin remoteBranchName:localBranchName

このように書けばOK。
git pull origin/master:newmodule と書いてはいけませんぞ。