首页/开发/Git 与协作速查/git lfs 安装与大文件跟踪
进阶与大仓实践69 条

git lfs 安装与大文件跟踪

用 Git LFS 把大文件(模型、素材、二进制包)存到外部存储,仓库里只保留指针;git lfs install 配置钩子,git lfs track 声明模式。

Git 与协作速查开发更新于 2026-10-13

Git LFS 跟踪是什么

Git LFS 用指针文件替代大文件本体:仓库里只保存一小段文本指针,真实内容存在 LFS 存储中,克隆时按需拉取。这样能避免模型、素材、二进制包把仓库撑大,也让日常的 diff 与打包保持轻快。使用时先 git lfs install 配置本地的过滤与钩子,再用 git lfs track 声明要跟踪的模式,声明的结果写进 .gitattributes 并需要提交。

基本信息

安装git lfs install 写入本地钩子与配置
跟踪git lfs track '*.psd' 写入 .gitattributes
检查git lfs ls-files 查看已被 LFS 管理的文件
关键前提.gitattributes 必须提交并分发
平台需要 LFS 客户端与服务端支持

典型使用场景

  • 设计稿与素材(如 psd、zip)体积大,不适合直接入库
  • 机器学习模型文件需要版本化,但不应撑大仓库
  • 二进制依赖包与安装包需要随版本留存
  • 美术或多媒体项目的日常提交与拉取
  • 仓库体积已经过大,希望后续不再继续膨胀
  • 同事克隆后发现文件是几行文本指针,需要统一安装 LFS

常用示例

常用示例
git lfs install                       # 每台机器执行一次
git lfs track '*.psd' '*.zip'         # 声明跟踪模式
git add .gitattributes                # 关键:把规则提交
git add assets/design.psd
git commit -m 'chore: 启用 LFS 跟踪设计文件'
git lfs ls-files                      # 确认已被 LFS 管理

相关命令

命令作用
git lfs install初始化本地过滤与钩子
git lfs track声明需要跟踪的模式
git lfs ls-files列出当前由 LFS 管理的文件
git lfs migrate把历史里的大文件转换为 LFS(见迁移条目)
track 只影响后续提交:已经在普通对象里的大文件需要 migrate 才能转成 LFS,历史体积不会因为一条 track 指令而缩小。
团队必须统一安装 LFS 客户端:没装的人会看到指针文本而不是真实文件,容易误判为文件损坏或内容丢失。

启用 LFS 的完整动作

  • 每台机器执行 git lfs install 初始化本地钩子
  • 按文件类型 git lfs track 声明模式,规则写入 .gitattributes
  • 把 .gitattributes 提交,否则规则不会随仓库分发
  • 确认服务端支持 LFS 并已配置存储与配额
  • 已有大文件的历史需要单独迁移,track 只对后续提交生效

易错点

  • 忘记提交 .gitattributes 时其他人克隆后不会走 LFS,文件又会以普通对象入库
  • 团队成员未安装 LFS 时指针会以文本形式检出,容易误判为文件损坏
  • 对大文件先 commit 再想用 LFS 补救,历史里的本体仍在,必须执行迁移才能真正瘦身
  • 把频繁改动的小文件也纳入 LFS,会额外增加一次网络往返,反而拖慢操作
  • LFS 存储配额与权限未规划,推送大文件时可能因额度或权限失败

数据来源与参考

  • Git LFS 官方文档:git-lfs install / track(git-lfs.com)
  • Git 官方文档:gitattributes(filter=lfs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌