参考
https://cloud.tencent.com/developer/article/1010589
- LFS介绍
Git 大文件存储(Large File Storage,简称LFS)目的是更好地把大型二进制文件,比如音频文件、数据集、图像和视频等集成到 Git 的工作流中。我们知道,Git 存储二进制效率不高,因为它会压缩并存储二进制文件的所有完整版本,随着版本的不断增长以及二进制文件越来越多,这种存储方案并不是最优方案。而 LFS 处理大型二进制文件的方式是用文本指针替换它们,这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过HTTPS托管在Git LFS服务器上。 - 系统环境和软件环境
系统环境
软件版本
- lfs支持
为了更好的服务社区,满足版本大型文件的需求,GitLab 宣布支持 Git LFS,现在已经包括在 GitLab.com,GitLab 社区版本和 GitLab 企业版本。但是 GitLab 对 Git LFS 支持需要满足:
Git LFS is supported in GitLab starting with version 8.2. (gitlab版本需要 >= 8.2)
Git LFS must be enabled under project settings (必须在项目设置中开启LFS)
Users need to install Git LFS client version 1.0.1 and up (本地git lfs客户端版本 >= 1.0.1) - 客户端安装git-lfs
Gitlab默认支持lfs无需配置
git客户端默认不安装lfs需要安装
- Git提交大文件
Gitlab新建仓库
客户端clone仓库
进入目录复制一个大文件
提交大文件
查看仓库已经把大文件提交上去
6. Git下载大文件
注意: 下载大文件需要加参数lfs 本次测试不加lfs也能把大文件下载下来
排错:在git push提示以下错误
原因:文件太大已经超过gitlab设置的最大文件限制
处理方法:修改配置文件提高gitlab允许上传最大文件设置
重点是配置,设置最大文件为50G
配置生效
补充:
如果在可见性与访问控制里面定义了自定义HTTP(S)协议Git克隆URL而且定义了域名
那么则无法推送lfs需要设置成ip并且在内网进行推送
原因不明
2024-08-15补充
在可见性与访问控制里面也可以不设置成ip地址设置成http请求然后在局域网客户端设置hosts是可以正常进行代码下载和推送的
在外网加了一层nginx进行https访问时可以正常进行代码下载但是无法推送,目前没找到解决方法