git fetch

张开发
2026/6/11 4:30:07 15 分钟阅读

分享文章

git fetch
文章目录1. 简介2. 格式3. 选项4. 示例4.1 基础用法4.2 拉取远程分支到本地4.3 修剪远程跟踪分支4.4 拉取标签4.5 浅克隆相关4.6 预览更新5. 注意5.1 git fetch 后如何查看更新5.2 git fetch vs git pull 对比5.3 查看 fetch 后的远程跟踪分支5.4 合并 fetch 后的远程跟踪分支5.5 常用别名设置6. 小结参考文献1. 简介git fetch用于从远程仓库下载最新的提交、分支和标签但不自动合并到当前分支。核心作用将远程仓库的更新下载到本地的远程跟踪分支如origin/main不会修改你当前的工作区或当前分支让你可以先查看远程更新再决定是merge还是rebase与git pull的区别git pullgit fetchgit merge自动合并git fetch 只下载不合并更安全2. 格式gitfetch[options][repository[refspec…​]]gitfetch[options]groupgitfetch--multiple[options][(repository|group)…​]gitfetch--all[options]3. 选项# 修剪与清理 -p,--prune删除本地远程跟踪分支中远程已不存在的分支 --prune-tags 删除本地远程跟踪标签中远程已不存在的标签会隐式启用 --prune# 标签处理 -t,--tags拉取所有标签相当于 refs/tags/*:refs/tags/* --no-tags 不拉取任何标签默认行为# 深度与历史 --depthdepth浅克隆只拉取最近的指定数量的提交历史--unshallow将浅克隆仓库转换为完整仓库拉取全部历史--deependepth增加浅克隆的历史深度# 其他 --all拉取所有远程仓库的更新 --dry-run 模拟执行显示将要获取的更新但不实际下载 -v,--verbose显示详细信息--force强制覆盖本地远程跟踪分支即使会导致历史分叉4. 示例4.1 基础用法# 拉取 origin 远程仓库的更新默认gitfetch# 拉取 origin 远程仓库的 main 分支gitfetch origin main# 拉取所有远程仓库的更新gitfetch--all4.2 拉取远程分支到本地# 拉取 origin/main 到本地的 origin/main 跟踪分支gitfetch origin main# 拉取 origin/feature 并直接创建本地分支gitfetch origin feature:feature# 拉取并强制覆盖本地分支gitfetch origin feature:feature4.3 修剪远程跟踪分支# 删除本地 origin/* 中远程已不存在的分支gitfetch--prune# 简写形式-pgitfetch-p# 同时修剪分支和标签gitfetch--prune--prune-tags4.4 拉取标签# 拉取所有标签gitfetch--tags# 拉取特定标签gitfetch origin tag v1.0.04.5 浅克隆相关# 只拉取最近 1 次提交用于 CI 加速gitfetch--depth1# 将浅克隆转换为完整仓库gitfetch--unshallow4.6 预览更新# 模拟执行查看会拉取哪些更新gitfetch --dry-run5. 注意5.1git fetch后如何查看更新# 1. 查看远程分支的最新提交gitlog origin/main--oneline-5# 2. 比较本地和远程的差异gitdiffmain origin/main# 3. 查看远程新增的提交gitlog main..origin/main--oneline# 4. 查看远程跟踪分支列表gitbranch-r5.2git fetchvsgit pull对比对比维度git fetchgit pull是否下载远程更新✅ 是✅ 是是否自动合并❌ 否✅ 是是否修改工作区❌ 否✅ 是安全性高可先查看再决定中可能产生意外合并推荐场景想先查看远程更新确定要合并远程更新5.3 查看 fetch 后的远程跟踪分支# 查看所有远程跟踪分支gitbranch-r# 查看远程跟踪分支的最新提交gitlog origin/main# 查看远程跟踪分支与本地分支的差异gitdiffmain origin/main5.4 合并 fetch 后的远程跟踪分支git fetch 之后可以使用 git merge 或 git rebase 将下载的内容合并到当前分支。方法一使用 git merge推荐公共分支# 1. 先 fetch 查看远程更新gitfetch origin# 2. 合并远程分支到当前分支gitmerge origin/main方法二使用 git rebase推荐个人分支# 1. 先 fetchgitfetch origin# 2. 变基到远程分支gitrebase origin/main5.5 常用别名设置gitconfig--globalalias.fpfetch --prunegitconfig--globalalias.ftfetch --tags# 使用别名gitfpgitft6. 小结需求命令说明拉取远程更新默认git fetch拉取 origin 的所有分支更新拉取特定分支git fetch origin main只拉取origin/main删除远程已不存在的跟踪分支git fetch --prune清理本地残留拉取所有标签git fetch --tags拉取远程所有标签浅克隆加速git fetch --depth1只拉取最近 1 次提交预览将要拉取的更新git fetch --dry-run模拟执行不实际下载拉取远程分支并创建本地分支git fetch origin feature:feature直接创建本地分支一句话总结git fetch是安全拉取远程更新的命令它只下载不合并让你可以先查看更新再决定如何操作。推荐在日常工作流中先git fetch查看远程变化再用git diff或git log确认后再git merge或git rebase。参考文献Git - git-fetch Documentation

更多文章