目的
リモート追跡ブランチ
と上流ブランチ
をそろそろ理解したい。
基本のおさらい
・git fetch
: リモートブランチの内容をローカルリポジトリのリモート追跡ブランチへ反映する
・git merge
: ローカルリポジトリ内でリモート追跡ブランチの内容をローカルブランチへ反映する
・git pull
: git fetch
とgit merge
をまとめて行う。
・git push
: ローカルブランチの内容をリモートブランチとリモート追跡ブランチへ反映する。
↓過去にまとめた記事があるので、よろしければ見てください..!!
第1回目 git基礎コマンド (https://qiita.com/tatsuya_1995/items/b0747759630b6c230684)
第2回目 ブランチ・マージ・リベース・コンフリクト(https://qiita.com/tatsuya_1995/items/04148896a7f23a1f2090)
第3回目 プルリクエスト (https://qiita.com/tatsuya_1995/items/6d48b7ba8487fe38bbf8)
リモート追跡ブランチ
<ポイント>
- ローカルリポジトリにあって、他のリポジトリの内容を追跡しているブランチである
-
origin/master
はリモートリポジトリorigin
のmaster
ブランチを追っているリモート追跡ブランチである
上流ブランチ
<ポイント>
- 引数なしで
git pull
したときに対象になるブランチである - ローカルリポジトリの
maste
rブランチからgit pullするとorigin/masterの変更を反映する。 -
origin/master
はローカルリポジトリのmaster
の上流ブランチである。
...ここで上流ブランチを普段意識していない人は少し引っかかりませんか?
git pullしたときは、単純にリモートブランチからローカルブランチへ変更を反映しているんじゃないの?って。
正確にはリモートブランチからリモート追跡ブランチ(origin/master)へ反映された後に、そのリモート追跡ブランチからローカルブランチへ反映されている。 という流れです..!!
なので、より正確な解釈を促すのであればgit pulllの動きを表す図はこちらなのではないかなと思っています。赤バツと青丸で表しています。
おまけ
- リモート追跡ブランチの一覧は
git branch -r
コマンドで確認可能