前置知识: Git

远程跟踪分支

00:00
2 min Intermediate 2026/6/14

远程跟踪分支机制:远程引用、上游分支与本地-远程同步模型。

1. 远程跟踪分支概述

1.1 什么是远程跟踪分支

远程跟踪分支远程分支状态本地引用,以 远程名/分支名 表示(如 origin/main)。它们是只读的,只在网络操作时更新

本地分支: main ←──── HEAD
远程跟踪分支: origin/main ←── 远程仓库的 main 分支的本地缓存

1.2 引用关系

.git/refs/heads/main           → 本地 main 分支
.git/refs/remotes/origin/main  → 远程 origin/main 的跟踪分支
.git/refs/remotes/origin/HEAD  → 远程 origin 的默认分支

2. 远程操作

2.1 fetch

# 获取远程更新(不合并)
git fetch origin
git fetch origin main
git fetch --all

# fetch 后查看远程分支
git branch -r
# origin/main
# origin/feature
# origin/develop

2.2 pull

# pull = fetch + merge
git pull origin main

# pull = fetch + rebase(推荐)
git pull --rebase origin main

# 设置默认使用 rebase
git config --global pull.rebase true

2.3 push

# 推送到远程
git push origin main

# 设置上游分支
git push -u origin feature
git push --set-upstream origin feature

# 推送所有分支
git push --all origin

# 删除远程分支
git push origin --delete feature

3. 上游分支

3.1 什么是上游分支

上游分支本地分支关联远程跟踪分支设置了上游后可以简化 push/pull 命令

# 设置上游
git branch -u origin/main main
git branch --set-upstream-to=origin/main main

# 查看上游设置
git branch -vv
# main    abc1234 [origin/main] feat: add auth
# feature def5678                 WIP: new feature

3.2 自动设置上游

# push 时自动设置
git push -u origin feature

# 之后可以直接
git pull
git push

4. 远程分支管理

4.1 查看远程分支

# 查看所有远程分支
git branch -r

# 查看所有分支(本地+远程)
git branch -a

# 查看远程仓库详情
git remote show origin

4.2 跟踪远程分支

# 创建本地分支跟踪远程分支
git checkout -b feature origin/feature
git checkout --track origin/feature    # 同上
git checkout feature                   # 如果远程有同名分支,自动跟踪

4.3 清理过时的远程分支

# 清理本地已不存在的远程分支引用
git remote prune origin

# 查看将被清理的分支
git remote prune origin --dry-run

# fetch 时自动清理
git fetch -p
git fetch --prune

5. 同步模型

5.1 快进同步

本地: A---B---C
远程: A---B---C---D---E

git pull → 本地快进到 E
本地: A---B---C---D---E

5.2 非快进同步

本地: A---B---C---D
远程: A---B---C---E

git pull → 产生合并提交或 rebase
本地: A---B---C---D---M (merge)
       A---B---C---D' (rebase)

5.3 三种同步策略

策略命令结果
mergegit pull创建合并提交
rebasegit pull --rebase线性历史
fast-forward onlygit pull --ff-only允许快进
# 设置默认策略
git config --global pull.ff only

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式