GitLab 之 Git LFS 大檔案儲存的配置

minseo發表於2024-08-10

參考
https://cloud.tencent.com/developer/article/1010589

  1. LFS介紹

    Git 大檔案儲存(Large File Storage,簡稱LFS)目的是更好地把大型二進位制檔案,比如音訊檔案、資料集、影像和影片等整合到 Git 的工作流中。我們知道,Git 儲存二進位制效率不高,因為它會壓縮並儲存二進位制檔案的所有完整版本,隨著版本的不斷增長以及二進位制檔案越來越多,這種儲存方案並不是最優方案。而 LFS 處理大型二進位制檔案的方式是用文字指標替換它們,這些文字指標實際上是包含二進位制檔案資訊的文字檔案。文字指標儲存在 Git 中,而大檔案本身透過HTTPS託管在Git LFS伺服器上。

  2. 系統環境和軟體環境
    系統環境

# 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
  1. 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)
  2. 客戶端安裝git-lfs
    Gitlab預設支援lfs無需配置
    git客戶端預設不安裝lfs需要安裝
# yum -y install git-lfs
  1. 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

檢視倉庫已經把大檔案提交上去
image
image
6. Git下載大檔案

# git  lfs clone http://192.168.3.215/liuym/lfs.git

注意: 下載大檔案需要加引數lfs 本次測試不加lfs也能把大檔案下載下來

相關文章