首页/开发/Git 与协作速查/查看远端分支列表

查看远端分支列表

git branch -r 列出远端跟踪分支、-a 合并展示;列表来自本地缓存,保持新鲜要先 fetch/prune。

Git 与协作速查开发更新于 2026-10-13

远端分支列表怎么读

git branch -r 列出远端跟踪分支,git branch -a 把本地与远端一起列出。这些结果来自本地缓存的远端跟踪引用(remote-tracking refs),不是实时查询服务器;要看到最新状态得先 fetch,并配 --prune 清理已被删除的远端分支。

基本信息

只看远端git branch -r
本地加远端git branch -a
数据来源本地缓存的远端跟踪引用,fetch 后刷新
清理失效引用git fetch --prune,或 git remote prune origin
过滤git branch -r --list 'origin/feat/*' 或 --merged origin/main

典型使用场景

  • 评审或发布前确认目标分支在远端确实存在
  • 核对 release 分支是否已推送,避免部署时找不到引用
  • 清理流程中找出已经并入主干的远端分支
  • 克隆后确认远端默认分支名是 main 还是 master
  • 排查本地出现「幽灵分支」的原因

常用示例

常用示例
git fetch --prune                          # 先刷新缓存并清理已删除的引用
git branch -r                              # 只列出远端跟踪分支
git branch -a                              # 本地与远端一起列出
git branch -r --merged origin/main         # 找出已并入主干的远端分支
git branch -r --list 'origin/feat/*'       # 按通配过滤
git ls-remote --heads origin               # 直接查服务器,绕过本地缓存

输出逐行读法

输出形式含义
origin/main远端跟踪引用,内容来自本地缓存
* main带星号的是当前检出的本地分支
origin/HEAD -> origin/main远端默认分支指向
fetch 后仍无该分支远端确实不存在,或名称拼写不同
origin/HEAD 指向远端的默认分支,新克隆后看一眼就能确认平台上的默认分支名,避免按 master 操作而实际是 main。
存在多个远端(origin 与 upstream)时列表会混在一起,用 git branch -r --list 'upstream/*' 可单独查看上游分支。
远端的刷新时机是网络操作:fetch、pull、push 都会顺带更新对应远端的分支列表。长期只在本地提交的仓库,看到的分支信息可能已经过期。
想按时间观察分支活跃度,可用 git branch -r --sort=-committerdate --format='%(refname:short) %(committerdate:short)',长期无人触碰的分支会浮到列表下方,便于判断哪些可以清理。
统计分支数量或按前缀分组时,以 fetch 后的缓存为准;两台机器上的列表不一致,通常只说明各自的刷新时间不同,不能据此判断远端数据有问题。

易错点

  • 本地缓存不会自动更新:同事删除远端分支后不执行 fetch --prune 仍会列出旧分支,据此操作必然失败
  • 列表来自缓存而非服务器,判断「远端到底有没有这个分支」要用 git ls-remote
  • 带 -r 显示的引用名(origin/main)不能直接推送,推送要写本地分支名并指定远端 origin
  • 把 --merged 的结果当成「可以删除」的唯一依据:还需确认分支上没有未合并的后续提交

数据来源与参考

  • Git 官方文档:git-branch(-r/-a)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌