You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git lfs fetch、git lfs fetch --all与git lfs pull的区别

三个Git LFS命令的核心区别

哪怕用了很多年Git,搞混Git LFS(Git大文件存储)的命令逻辑也很正常——毕竟LFS本身是独立于Git原生对象体系的机制:大文件实际存在专门的LFS存储端,Git仓库里只存对应文件的轻量指针,几个LFS命令的行为和Git原生同名命令也不是完全对齐的。

三个命令的具体差异如下:

  • git lfs fetch
    只从远程LFS存储下载当前本地检出的提交/分支直接关联的LFS大文件,下载的文件会存在本地LFS缓存目录,不会改动工作区里的文件。执行完这个命令,工作区里对应位置还是几KB的LFS指针占位符,看不到实际的大文件内容。

  • git lfs fetch --all
    全量拉取所有LFS对象:不局限于当前分支、当前提交用到的文件,会把远程仓库里所有分支、所有历史提交、所有标签关联的全部LFS大文件都下载到本地缓存。这个命令只适合做仓库全量离线备份、跨平台迁移这类特殊场景,日常开发用纯属浪费存储空间和下载时间,完全没必要。

  • git lfs pull
    日常开发最常用的LFS命令,本质是两步操作打包执行:先跑git lfs fetch把当前提交需要的LFS文件拉到本地缓存,再跑git lfs checkout把缓存里的真实大文件替换掉工作区的指针占位符。跑完之后工作区里的大文件就能正常打开、编辑了,逻辑和原生git pull拉完代码自动同步到工作区的行为是对齐的。


常见踩坑提示

默认配置下,原生git pull只会拉取Git仓库里存的LFS指针,不会自动下载对应的实际大文件。如果拉完代码发现原本应该是几MB甚至几GB的资源文件只有几KB大,打开是乱码或者写着LFS指针信息的文本,手动跑一次git lfs pull就能把真实文件同步下来。

内容的提问来源于stack exchange,提问作者Gabriel Staples

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:51:22