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 只对后续提交生效