0%

Git LFS 使用指北

最近项目组很多新项目都使用到了 Git LFS, 解决了 Git 大文件提交容易导致仓库尺寸爆炸的问题.

Git LFS: 简单来说就是用来存储源码仓大文件的, 会把大文件放在"别的地方"存储, 保持源码仓的 Size.

有必要学习一下基础用法.

安装

这个东西可以看成是 Git 的一个扩展插件, 一般安装比较新的 Git 之后, 都自带这个插件.

可以使用命令查看 Lfs 版本:

git lfs version

使用

  1. 启用 LFS 功能
git lfs install

这个命令单个用户只需要执行一次, 后续提交都会自动使用 LFS 功能.

  1. 将文件向 LFS 提交
git lfs track path/file.bin

这个操作会修改 .gitattributes 文件, 这个文件记录了 LFS 管理文件的信息.
文件路径也可以使用通配符 * 来匹配多个文件.

  1. 提交文件
git add .gitattributes path/file.bin
git commit -m "add file.bin"

需要同时提交 .gitattributes 和 二进制文件, 否则 LFS 无法识别.

  1. 推送到远程仓库
git push origin master
  1. 其他参考
    使用命令 git lfs, 想知道的都有写:
git lfs help

也可以去官网瞅瞅: https://git-lfs.com/

证书问题

LFS 内部使用的 HTTP 协议操作大文件, 上传下载什么的会访问源码仓的 API. 一些仓库证书是自签的, 会报证书错误.

Remote "origin" does not support the LFS locking API. Consider disabling it with:
  $ git config lfs.https://xxxx/org/project.git/info/lfs.locksverify false
Uploading LFS objects:   0% (0/1), 0 B | 0 B/s, done
batch response: Post https://xxxx/org/project.git/info/lfs/objects/batch: x509: certificate signed by unknown authority
error: failed to push some refs to 'ssh://git@xxxx/org/project.git.git'

可以通过配置不验证证书来绕过:

# 单个项目配置
git config http.sslVerify false
# 全局配置
git config --global http.sslVerify false

参考