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

リモート追跡ブランチと上流ブランチ

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

2. fetch、merge、(pull)

fetchとmerge

  • 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

【参考】