如何 fetch 所有 Git 分支

拉取所有远程分支信息:git fetch --all(多个远程时全部更新),只更新 origin 用 git fetch origin。fetch 只更新 origin/ 跟踪引用不动本地分支;git branch -a 查看全部分支。

最佳实践
Git 分支协作与合并示意

git fetch --all:更新所有远程(origin、upstream 等)的全部分支引用。只有一个远程时 git fetch 或 git fetch origin 即可。fetch 只刷新本地的 origin/xxx 跟踪引用,不会动你的本地分支和工作区,随时可安全执行。

常用组合

git fetch --all --prune      # 更新 + 清理远程已删除的分支引用
git fetch --all --tags       # 连同所有标签
git branch -a                # 查看:本地 + 远程跟踪分支全列出

fetch 之后做什么

fetch 只"同步信息",接下来通常:

git log HEAD..origin/main --oneline   # 看远程多了哪些提交
git merge origin/main                 # 合入当前分支(或 rebase)
git checkout 分支名                    # 检出刚 fetch 下来的新分支

把 --prune 设为默认

git config --global fetch.prune true

之后每次 fetch 自动清理已在远程删除的分支引用,git branch -r 不再堆积幽灵分支。

常见问题(FAQ)

Q:fetch --all 和 git pull --all 有什么区别?

pull --all 会先 fetch --all 然后尝试合并到当前分支——多分支更新不是你的意图时会惹麻烦。同步信息用 fetch --all 就够。

Q:为什么 checkout 别人的新分支报不存在?

本地引用没刷新。git fetch 后再 git checkout 分支名。

Q:fetch 会影响正在做的工作吗?

完全不会。它不碰工作区和本地分支,只更新 .git 里的远程跟踪引用——这也是"fetch 先行、看清再合"工作流的基础。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台