參考
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) FOSS
GitLab Shell: 14.29.0
PostgreSQL: 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也能把大檔案下載下來