最近在开发 uni-App 的sass的时候有一个问题。开发手机APP可以查看所有商家的app的时候依赖一个UniMP的SDK。但是使用最新的5.24版本的SDK的时候。 苹果的SDK用的是pod管理的,没有最新5.24版本的。所以只能自己手动导入,但是这个sdk很大,放在git仓库里面不合适
直接 git add 就开始难受了。
Git LFS(Large File Storage)就是专门解决这个问题的。
它不会把真正的大文件直接作为普通 Git blob 存进仓库,而是在 Git 里保存一个很小的 pointer 文件,真正的大文件交给 LFS 存储。
Git LFS 到底解决什么问题?
普通 Git:
Git Repository
│
├── main.py
├── package.json
├── model.safetensors ← 2GB
└── video.mp4 ← 800MB如果直接提交:
Git 会把这些大文件作为普通 Git 对象处理。长期下来,仓库历史可能非常庞大。
Git LFS 的思路则是:
Git Repository
│
├── main.py
├── package.json
└── model.safetensors
│
└── 实际上 Git 保存的是一个 pointer
│
▼
Git LFS Server
│
└── 真正的 2GB 文件安装
brew install git-lfs
git lfs install
git lfs version
看到版本号就代表成功了
一个实际例子
假设我现在有一个 AI 项目:
my-ai-project/
├── src/
├── README.md
├── requirements.txt
├── models/
│ └── model.safetensors
└── assets/
└── demo.mp4其中
model.safetensors → 2GB
demo.mp4 → 500MB告诉 Git 哪些文件交给 LFS
git lfs track "*.safetensors"
git lfs track "*.mp4"这些命令会修改项目里的:.gitattributes
这个 .gitattributes 文件一定要提交。
官方文档也明确要求,在 git lfs track 后把 .gitattributes 加入 Git。(Git Large File Storage)
git add .gitattributes
git commit -m "chore: configure git lfs"然后就和普通 Git 一样用了
git add models/model.safetensors
git commit -m "add model"
git push origin main推送时你可能会看到:
Uploading LFS objects: 100% (1/1)这就说明大文件正在通过 Git LFS 上传。(GitHub)
以后基本不需要记什么特殊命令。
评论