git-lfs 的安装及简单使用

3,002 阅读2分钟

是啥

代码托管支持 Git LFS(Large File Storage,大文件存储)协议,可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,对于使用者而言,类似在操作一个完整的Git仓库,非常方便。通过将大文件存储在Git原有的数据结构之中,可以减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。

为什么要用 git lfs

  • 项目保存静态资源,项目总体积过大
  • 存在过大的单个文件(大于100M)

mac 安装

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install git-lfs
$ git lfs install

centos 安装

$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
$ sudo yum install git-lfs
$ git lfs install

初始化项目

由于 github 放弃使用本地密码登录了,所以最好还是github上新建一个项目,然后 clone 下来。不然很难搞。

git clone @git.....

初始化 lfs

它会更新 git hooks,用来支持 lfs。

git lfs install

添加要处理的文件类型

git lfs track "*.mp4"
git add .gitattributes

这里要注意,每次使用了 git lfs track 之后,都要把 .gitattributes 给 add 到暂存区(不用 commit),这样这种新加入的类型才会生效。

还有,执行 git lfs track 的时候,会根据当前目录生成,也就是说在 /my-project/src/ 下执行 git lfs track ".mp4",生成的配置会是 /src/.mp4,而不是在全局生效的 /*.mp4,而且 src 文件夹下也会生成一个新的 .gitattributes 文件。

所以如果想统一整理,记得回到项目根目录再执行 git lfs track "*.mp4"

查看当前的 lfs 能处理的文件类型

git lfs track

添加要处理的文件

在经过上面添加类型以及 .gitattributes 之后,正常的 add 和 commit 就行了。

git add *.mp4
git commit -m "feat: init lfs and save mp4 files"

add 之后查看被 lfs 处理的文件

git lfs status

push 的时候的效果

git push

git lfs 在 push 的时候生效.png

查看已跟踪的文件列表

git lfs ls-files

git lfs ls-files查看lfs已跟踪的文件列表.png

克隆包含 Git LFS 文件的远程仓库

git lfs clone <URL>

参考

Git LFS使用_代码托管 CodeHub_用户指南_更多Git知识_华为云 (huaweicloud.com)