[git]origin/mainとは? - リモート追跡ブランチ / 上流ブランチ

混同しがちなリモート追跡ブランチ/上流ブランチについて解説します。

そもそもブランチとは?

ブランチは一つのコミットを指す移動可能なポインターのことです。

ブランチは枝分かれした全体であると考える方がいますが、これは完全な誤りです。

ブランチはポインターにすぎません。

リモート追跡ブランチ

リモート追跡ブランチとは、ローカルリポジトリに存在する、リモートブランチへの参照のことです。

origin/mainのように<リモート名>/<ブランチ名>の形式で表されます。

リモート追跡ブランチの出力

リモート追跡ブランチは下記のようなブランチの一覧表示コマンドでも、確認できます。

git branch -a

上記を実行すると...

* main
remotes/origin/main <-- リモート追跡ブランチ

上記のように出力されますが、接頭辞にremotes/とつくブランチがリモート追跡ブランチです。

逆にそれ以外はローカルブランチとなります。

また、リモート追跡ブランチのみを出力したい場合、下記のコマンドを実行します。

git branch -r

上流ブランチ

上流ブランチとは、あるローカルブランチが追跡するリモート追跡ブランチのことです。

上流ブランチを設定することで、「git pull」や「git push」の際にリモートブランチの指定を省略できます。

git pull origin main

↓↓↓↓↓↓↓リモートブランチを指定しなくてもいい↓↓↓↓↓↓↓

git pull

上流ブランチの出力

下記のコマンドで上流ブランチを確認できます。

git branch -vv

上記を実行すると...

main f8fdd6f [origin/main]

ブラケットで囲われたorigin/mainがmainブランチの上流ブランチであると分かります。

上流ブランチの設定

上流ブランチを設定する場合、下記のコマンドで設定できます。

git branch <ローカルブランチ名> -u <リモート名>/<ブランチ名>