git clone仓库后如何通过git lfs获取原始大文件
git lfs fetch --all 仅负责将LFS存储的文件对象拉取到本地LFS缓存目录,不会自动替换工作区内的LFS指针文件,这是操作后看不到实际大文件的核心原因。
新电脑正确恢复LFS大文件的操作
在克隆得到的本地仓库根目录,按顺序执行以下命令即可:
- 先确认LFS钩子正常生效:brew安装完git-lfs后执行的
git lfs install默认是全局配置,正常无需重复执行,若要强制重新注册钩子可以运行:
git lfs install --force
- 拉取当前分支对应提交依赖的所有LFS文件,同时自动替换工作区的指针文件为实际大文件:
git lfs pull
执行完上述操作后,工作区内的大文件就会恢复为完整可用状态,可直接正常运行项目。
特殊场景处理
- 注意:如果克隆仓库时使用了
GIT_LFS_SKIP_SMUDGE=1环境变量,会默认跳过LFS文件的自动拉取流程,直接执行git lfs pull即可补全所有大文件 - 如果需要拉取仓库全量历史版本的LFS对象(比如需要频繁切换旧分支开发),可以先执行
git lfs fetch --all将所有LFS对象缓存到本地,后续切换到任意提交时,只需执行git lfs checkout即可快速完成对应版本大文件的工作区替换,无需重复联网拉取。 - 如果执行
git lfs pull后仍有部分文件保持指针状态,执行硬重置命令触发文件重新检出即可:
git reset --hard HEAD
- 可通过
git lfs ls-files命令校验LFS规则加载状态:命令能正常输出当前提交跟踪的LFS文件列表、对应对象哈希,就说明LFS配置运行正常。 - 若上述操作都无效,先升级本地git和git-lfs版本再重试:
brew upgrade git git-lfs
升级完成后回到仓库目录重新执行git lfs pull即可。
内容的提问来源于stack exchange,提问作者four-eyes
相关产品推荐
相关产品推荐

