参考
https://cloud.tencent.com/developer/article/1010589
-
LFS介绍
Git 大文件存储(Large File Storage,简称LFS)目的是更好地把大型二进制文件,比如音频文件、数据集、图像和视频等集成到 Git 的工作流中。我们知道,Git 存储二进制效率不高,因为它会压缩并存储二进制文件的所有完整版本,随着版本的不断增长以及二进制文件越来越多,这种存储方案并不是最优方案。而 LFS 处理大型二进制文件的方式是用文本指针替换它们,这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过HTTPS托管在Git LFS服务器上。
-
系统环境和软件环境
系统环境
# cat /etc/redhat-release
CentOS Stream release 9
# uname -a
Linux CentOSStream9Git215 5.14.0-381.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Oct 30 23:56:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
软件版本
# gitlab-rails console
--------------------------------------------------------------------------------Ruby: ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]GitLab: 16.5.1 (d59d7a49a1f) FOSSGitLab Shell: 14.29.0PostgreSQL: 13.11
------------------------------------------------------------[ booted in 57.47s ]
Loading production environment (Rails 7.0.8)
# git version
git version 2.39.3
- 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需要安装
# yum -y install git-lfs
- Git提交大文件
Gitlab新建仓库
客户端clone仓库
# git clone http://192.168.3.215/liuym/lfs.git
进入目录复制一个大文件
# cp lfs-bak/ubuntu-22.04.4-desktop-amd64.iso lfs
提交大文件
# 设置存储到 LFS 的文件,如果有多个类似文件可以使用通配符 "*.iso"
# git lfs track ubuntu-22.04.4-desktop-amd64.iso
Tracking "ubuntu-22.04.4-desktop-amd64.iso"
# 会在当前目录生成文件.gitattributes可以查看该文件内容记录了lfs文件信息
# cat .gitattributes
ubuntu-22.04.4-desktop-amd64.iso filter=lfs diff=lfs merge=lfs -text
# 添加提交
# git add ubuntu-22.04.4-desktop-amd64.iso
# git add .gitattributes
# git commit -m "Commit a big file"
# git push
查看仓库已经把大文件提交上去
6. Git下载大文件
# git lfs clone http://192.168.3.215/liuym/lfs.git
注意: 下载大文件需要加参数lfs 本次测试不加lfs也能把大文件下载下来