git的LFS
git的lfs功能是什么?
Git LFS(Large File Storage)是 Git 的扩展功能,用于高效管理大文件(如图像、视频、数据集等),解决 Git 原生对大文件处理效率低下的问题。
核心原理
问题
Git 默认存储文件的每个版本差异,但对二进制大文件(如视频、模型)无法有效压缩,导致仓库臃肿、操作缓慢。解决方案
将大文件替换为轻量级指针文件(约百字节),实际文件存储在远程 LFS 服务器(如 GitHub LFS)。操作仓库时,仅按需下载当前所需的大文件版本。
使用步骤
安装
1
2# 安装 Git LFS
git lfs install # 初始化(每个仓库只需一次)跟踪文件
1
2git lfs track "*.psd" # 指定文件类型(规则写入 .gitattributes)
git add .gitattributes # 提交跟踪规则提交与推送
1
2
3git add design.psd # 大文件自动转为指针
git commit -m "Add PSD"
git push origin main # 推送指针和 LFS 文件克隆与拉取
1
2git clone <repo-url> # 自动下载指针关联的 LFS 文件
git lfs pull # 手动拉取最新 LFS 文件
关键特性
存储优化
仅保留指针文件在 Git 仓库,实际大文件由 LFS 服务器管理,避免历史冗余。透明操作
用户使用常规 Git 命令(add
,commit
,push
),LFS 自动处理大文件传输。版本控制
LFS 支持大文件版本管理,但需注意服务器可能限制存储空间(如 GitHub 免费配额 1GB)。
典型场景
游戏开发
管理 Unity 资源包(.asset
)、3D 模型(.fbx
)等。数据工程
版本化大型 CSV/Parquet 数据集(避免 Git 仓库爆炸)。设计协作
跟踪 Adobe Photoshop(.psd
)、Figma 导出文件。
注意事项
迁移历史文件
已有仓库需用git lfs migrate
重写提交历史,否则旧版本大文件仍存于 Git 中。服务器依赖
必须配置 LFS 服务器(自建或使用 GitHub/GitLab 等托管服务)。命令行工具
常用操作:1
2
3git lfs ls-files # 查看 LFS 跟踪文件
git lfs prune # 清理本地缓存
git lfs fetch --all # 下载所有 LFS 文件版本混元大模型生成