1. リモート追跡ブランチ、上流ブランチ

- リモート追跡ブランチ(remote-tracking branch)
- リモートブランチの状態を追跡するブランチ
- ローカルリポジトリに存在する(実体は
.git/refs/remotes/)
- 上流ブランチ(upstream branch)
- デフォルトでマージの対象となるブランチ(引数なしで
git mergeした時にマージされるブランチ) - mainブランチの上流ブランチがorigin/mainブランチである場合、「mainブランチはorigin/mainブランチを追跡している」と言う
- デフォルトでマージの対象となるブランチ(引数なしで
2. fetch、merge、(pull)

- fetch:リモートリポジトリのmainブランチをローカルリポジトリのorigin/mainブランチに反映
- merge:ローカルリポジトリのorigin/mainブランチをローカルリポジトリのmainブランチにマージ
- pull = fetch + merge
git pull origin main=git fetch origin+git merge origin/main
3. 関連コマンド
3-1. 上流ブランチの設定
上流ブランチの設定(git-branch -u)
# git branch -u <リモート追跡ブランチ> <ローカルブランチ>
git branch -u origin/main main
push時に上流ブランチを設定(git-push -u)
# mainブランチの上流ブランチにorigin/mainブランチが設定される
git push -u origin main
上流ブランチの設定を解除(git-branch –unset-upstream)
# git branch --unset-upstream <ローカルブランチ>
git branch --unset-upstream main
3-2. ブランチの確認
ローカルブランチとリモート追跡ブランチの表示(git-branch -a)
git branch -a
リモート追跡ブランチの表示(git-branch -r)
git branch -r
上流ブランチの確認(git-branch -vv)(git-status)
# 詳細
git branch -vv
# シンプル
git status -bs
ローカルブランチとリモート追跡ブランチとの差分を表示(git-diff)
# git diff <ローカルブランチ> <リモート追跡ブランチ>
git diff main origin/main
3-3. リモート追跡ブランチの削除
指定して削除(git-branch -r)
# git branch -d -r <リモート追跡ブランチ>
git branch -d -r origin/main
一斉に削除(git-fetch –prune)(git-remote prune)
git fetch --prune
# git remote prune <リポジトリ名>
git remote prune origin
【参考】
- Git Branching - Remote Branches
- Git で「追跡ブランチ」って言うのやめましょう
- Delete remote-tracking branches in Git
- 第17話 ローカルリポジトリに残ってしまうリモート追跡ブランチを一気に削除する prune オプション
- git fetchの理解からgit mergeとpullの役割
- 【初心者向け】git fetch、git merge、git pullの違いについて
- git: fetch and merge, don’t pull | Mark’s Blog
- Git Fetch | Atlassian Git Tutorial
- git fetchとブランチ取り込み系コマンドの引数を省略すると?