Git LFS 介绍
Git LFS(Large File Storage),表示 Git 大文件存储。一直以来 git 只能提交存储小文件大远程仓库,当遇到大文件时 push 会遇到卡死等问题。因此,出现了 Git LFS,解决 git 仓库的大文件的版本管理。随着深度学习模型越来越大,特别是大模型、多模态大模型的出现,预训练得到的权重文件多达几十G不等,这些大文件的管理使用 LFS 再合适不过了。如 Hugging Face 上的模型仓库大文件都是用 LFS 管理。本篇介绍如何使用 Git LFS.
Git LFS 是一个命令行扩展和规范,用于使用 Git 管理大文件。 该客户端是用 Go 编写的,预编译的二进制文件可用于 Mac、Windows、Linux 和 FreeBSD。
安装
官网安装地址:https://github.com/git-lfs/git-lfs/tree/main#installing
Note: Git LFS requires at least Git 1.8.2 on Linux or 1.8.5 on macOS.
| 1 | # Debian/Ubuntu | 
安装完成后,使用如下命令配置 lfs:
| 1 | git lfs install | 
如果出现 Git LFS initialized,那么说明配置成功。注意,当运行该命令时当前目录不是一个 git 仓库时,会有一些警告信息,可不用管。
使用
为仓库新添加大文件
当原来仓库不是使用 LFS 管理时,为新仓库增加了一个大文件,如 “a.mp4”,那么可以如下操作,提交到远程仓库中:
| 1 | # 设置跟踪该文件 | 
此时,在远程仓库如 GitHub/Gitlab 上就能看到文件后面有一个 LFS 标志。
克隆别人的仓库(如果有LFS大文件)时,可以使用如下方法:
| 1 | # 如果第一次安装 git-lfs,那么需要配置 | 
把现有仓库中某个文件改为LFS
有时候,我们想把仓库中本来已经存在的大文件用LFS管理,但是,已经提交到远程仓库了。我们可以如下操作:
| 1 | # 先从远程仓库获取最新 | 
QA
- 当本地 git 未安装 git-lfs 时,克隆远程有LFS管理的代码仓库时,不会把LFS管理的大文件的源文件下载下来,下载下来的是链接文件,打开内容如下:1 
 2
 3version https://git-lfs.github.com/spec/v1 
 oid sha256:189d0cea7ee085a79716ebf5e6bf29cd0d8aece08c0b0f25cbf15b3aa74d09cf
 size 17190
- 当本地已经配置了 Git LFS,但是不想下载大文件时,可以使用如下方法:1 
 2
 3# if you want to clone without large files – just their pointers 
 # prepend your git clone with the following env var:
 GIT_LFS_SKIP_SMUDGE=1
- 使用 GIT LFS 帮助1 git lfs help <subcommand> 
- 查看 GIT LFS 环境变量1 git lfs env 
参考文献
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J. Xu!
 评论










