讲师中心 微信公众号
AI工具推荐 视频效率加速

Git怎么从远程仓库拉取指定分支_Git fetch拉取分支教程【进阶】

冬枫同学_5746

冬枫同学_5746

发布时间:2026-04-02 08:30:04

|

903人浏览过

|

来源于php中文网

原创

git fetch 最安全,只下载不合并;fetch 后用 git log ..origin/branch 预览提交,再用 git checkout -b branch origin/branch 创建跟踪分支;清理失效远程引用用 git remote prune origin。

git怎么从远程仓库拉取指定分支_git fetch拉取分支教程【进阶】

git fetch 只拉代码不合并,这是最安全的起点

直接 git pull 会自动 merge 或 rebase,一旦远程分支有冲突或历史重写,本地当前分支立刻被污染。fetch 是纯粹“下载元数据+对象”,不碰你的工作区和暂存区,适合先确认内容再决定怎么用。

  • 运行 git fetch origin feature/login 就能只拉取远程 feature/login 分支的最新提交,不会影响你当前在哪个分支
  • fetch 后用 git log ..origin/feature/login 可以预览这个分支新增了哪些提交,比直接 pull 更可控
  • 如果远程分支名含斜杠(如 release/v2.1),必须加引号或转义: git fetch origin 'release/v2.1',否则 shell 可能报错或解析失败

git checkout -b 基于远程分支新建本地分支

fetch 完之后,远程分支只是存在 origin/xxx 这种“远程追踪引用”里,你还不能直接 git checkout origin/xxx(那会进入分离头指针状态)。真正想在本地开发,得新建一个跟踪分支。

  • 推荐命令:git checkout -b feature/login origin/feature/login —— 一步创建本地分支并设置 upstream
  • 等价但更显式的写法:git switch -c feature/login --track origin/feature/login(Git 2.23+)
  • 别用 git checkout origin/xxx,它会让你卡在 detached HEAD,后续 commit 不属于任何分支,容易丢失
  • 如果本地已存在同名分支且不想覆盖,git checkout 会拒绝,这时得先 git branch -D feature/login 或换名

git pull --no-commit 拉取并暂停合并,方便检查再决定

有些场景你确实想快速更新当前分支(比如正在开发的 dev),又怕自动 merge 出问题。这时候 --no-commit 能帮你把合并过程“卡住”,留出检查窗口。

GitHub Actions Deploy Risk Audit
GitHub Actions Deploy Risk Audit

通过评估失败率、未解决的连续失败和上次成功部署以来的时间,审计GitHub Actions运行的部署工作流风险。

下载
  • git pull --no-commit origin dev 会执行 fetch + merge,但不自动 commit,所有变更停留在暂存区
  • 此时可以 git status 看冲突文件,git diff --cached 看即将提交的内容,甚至 git reset --hard 全部回退
  • 注意:这个参数对 rebase 模式无效(git pull --rebase 本身就不 commit),也不适用于已配置 pull.rebase=true 的仓库
  • 如果远程分支被 force push 过,git pull 可能拒绝合并,这时必须先 git fetch 再手动 git reset --hard origin/dev

远程分支删了,本地还留着?用 git remote prune 清理

团队协作中,别人删掉 feature/old 后,你的 origin/feature/old 追踪引用并不会自动消失。下次 git branch -r 还能看到它,但 git fetch 也不会更新它——它成了“僵尸引用”。

  • 清理命令:git remote prune origin,它会删掉所有在远程已不存在的 origin/xxx
  • 想预览将删哪些,加 --dry-run:git remote prune --dry-run origin
  • 也可以让 fetch 默认自动 prune:git config --global fetch.prune true,但要注意这会影响所有仓库
  • 别依赖 git fetch --prune 一次性的写法,因为有些 CI 工具或脚本里没加这个 flag,久而久之本地引用就积灰

远程分支名大小写、特殊字符、空格都可能引发 shell 解析或 Git 内部处理异常;最稳妥的做法是始终用单引号包裹分支名,哪怕它看起来“很安全”。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

1031

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

1377

2024.03.13

C++ 智能指针与现代内存管理
C++ 智能指针与现代内存管理

深入讲解 C++ 现代内存管理的核心工具——智能指针,涵盖 unique_ptr 独占所有权语义、shared_ptr 引用计数机制与循环引用问题、weak_ptr 弱引用的应用场景、make_unique/make_shared 工厂函数的性能优势、自定义删除器的编写、RAII 资源管理思想的实践,以及从裸指针迁移到智能指针的重构策略,帮助开发者编写安全无泄漏的现代 C++ 代码。

319

2026.04.23

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

5259

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

1620

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

934

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3437

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3101

2024.04.09

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 7.9万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn