🌲

【Git】リモートブランチ、リモート追跡ブランチ、ローカルブランチ

2024/04/19に公開
1

はじめに

リポジトリを新たにクローンした際に、リモートブランチとローカルブランチの紐づけってどうやるんだっけ?となったので、整理した。

リモート追跡ブランチはリモートブランチではない

「そんなの当たり前」という方はスキップを。
私はgit branch -aコマンドで表示される「remotes/origin/main」のようなブランチを、リモートブランチだと勘違いしていた。
しかし、これはリモート追跡ブランチといってリモートブランチではない。それにどちらかというとローカルブランチなのである。先頭のremotesが誤解を招く。

kentwatson@PC:~$ git branch -a
* dev                    ←ローカルブランチ
  main                    ←ローカルブランチ
  remotes/origin/HEAD -> origin/main   ←リモート追跡ブランチ
  remotes/origin/dev            ←リモート追跡ブランチ

ローカルブランチとリモート追跡の紐づけ

まずは紐づけたいローカルブランチに切り替える。今回はmainブランチ。

git checkout main

紐づけたいリモート追跡ブランチ(今回はorigin/main)にローカルブランチを紐づける。

git branch -u origin/main

紐づいているか確認するコマンド。

kentwatson@PC:~$ git branch -vv
* main xxxxxx [origin/main] Merge branch 'dev'      ←リモートのコミットメッセージ

おわりに

もっと簡単な方法がありそう。Gitプロフェッショナルの方々、教えて下さい。

Discussion