Post

Git LFS 使用教程:把模型、视频等大文件放进 Git

最近在开发 uni-App 的sass的时候有一个问题。开发手机APP可以查看所有商家的app的时候依赖一个UniMP的SDK。但是使用最新的5.24版本的SDK的时候。 苹果的SDK用的是pod管理的,没有最新5.24版本的。所以只能自己手动导入,但是这个sdk很大,放在git仓库里面不合适 直接

随笔 阅读 0 点赞 0 评论 0

最近在开发 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)

以后基本不需要记什么特殊命令。

继续阅读

全部归档
《黑客与画家》读后感 06|语言只是写法,内核才决定未来
《黑客与画家》读后感 06|语言只是写法,内核才决定未来

读到 Chapter 10 和 11,我脑子里冒出来的第一个感觉其实很简单: 编程语言没有我以前想得那么神。 它当然重要,但它不是技术本身。它更像是一种书写法,一种把我们脑子里的问题翻译给机器看的方式。真正决定一个系统能不能走远的,不只是你用了什么语言,而是你有没有把问题拆对、把边界画清、把内核做干

评论