最近项目组很多新项目都使用到了 Git LFS
, 解决了 Git
大文件提交容易导致仓库尺寸爆炸的问题.
Git LFS: 简单来说就是用来存储源码仓大文件的, 会把大文件放在"别的地方"存储, 保持源码仓的 Size
.
有必要学习一下基础用法.
安装
这个东西可以看成是 Git
的一个扩展插件, 一般安装比较新的 Git
之后, 都自带这个插件.
可以使用命令查看 Lfs
版本:
git lfs version
使用
- 启用
LFS
功能
git lfs install
这个命令单个用户只需要执行一次, 后续提交都会自动使用
LFS
功能.
- 将文件向
LFS
提交
git lfs track path/file.bin
这个操作会修改
.gitattributes
文件, 这个文件记录了LFS
管理文件的信息.
文件路径也可以使用通配符*
来匹配多个文件.
- 提交文件
git add .gitattributes path/file.bin
git commit -m "add file.bin"
需要同时提交
.gitattributes
和 二进制文件, 否则LFS
无法识别.
- 推送到远程仓库
git push origin master
- 其他参考
使用命令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