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 文件版本混元大模型生成