🌲
【Git】リモートブランチ、リモート追跡ブランチ、ローカルブランチ
はじめに
リポジトリを新たにクローンした際に、リモートブランチとローカルブランチの紐づけってどうやるんだっけ?となったので、整理した。
リモート追跡ブランチはリモートブランチではない
「そんなの当たり前」という方はスキップを。
私は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
紐づいてるかの確認は
git rev-parse --abbrev-ref @{u}
でできます。