tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

git の追跡ブランチというものがあるんだ。

最近、git について色々学んだのでアウトプットします。

会社の開発ブログもどんどん連載しろとのこと笑

一昨日は

git pull  =   git fetch + git merge  

だということがわかりました。

「git fetch ってローカルにリモートを反映させることじゃないの?」

という、単純な考え方を打ち壊されました。

fetchはリモートを取り組んで「追跡ブランチ」 に取り組むんだそう、、、、

ローカルブランチじゃないんだ、、

そもそも僕が思っているローカルブランチって
一体なんのことを指しているのか笑

ということで行ってみましょう!  

ブランチの種類!

リモートブランチ
リモート追跡ブランチ
ローカルブランチ

リモートブランチはgit hubで管理しているブランチのこと。
ローカルブランチはローカルリポジトリに保存されていて、
直接変更を加えられるブランチのこと。

リモート追跡ブランチは、ローカルリポジトリにあって他のブランチを追跡させるブランチのこと リモートブランチと紐付けていつでもコピーできます。

git pull した時は
1 コピー置き場にコピーして (git fetch)
2 作業中のブランチにコピーする (git merge) という動作をしているのです。

なるほど、、、

追跡ブランチと上流ブランチ

ここで上流ブランチというものが出てきました。

少し違うらしてくて、

上流ブランチは、
引数なしでgit pullした時にマージされるブランチのこと
masterでgit pull した時は、origin/masterをmergeしてきます。

これが、上流ブランチです。

git pullした時にfetchでコピーしてくる先が"リモート追跡ブランチ"
mergeしてくる対象が上流ブランチ

違う文脈でも、同じブランチのことを指すことができるので
混同しやすいのかなと思います!

終わり!

すごく分かりやすい記事でした。
https://qiita.com/uasi/items/69368c17c79e99aaddbf

https://kray.jp/blog/git-pull-rebase/

最後に

最近「ロマンスの神様」という歌で有名な広瀬香美さんも
youtubeはじめたみたいで、めちゃめちゃ面白いです。大好き

https://www.youtube.com/watch?v=etI8kyrZEbY