為什麼 clone 下來的檔案不是正確的格式?認識 Git LFS

為什麼 clone 下來的檔案不是正確的格式?認識 Git LFS

目錄

最近遇到同事 git clone 一個專案,發現 clone 下來的壓縮檔居然是文字檔案!但我們在遠端看到的是壓縮檔,為什麼會這樣呢?原來是因為專案使用了 Git LFS,所以在 clone 時,只會 clone 下來指標檔案,而不是實際的大型檔案。這篇文章就來介紹一下 Git LFS。

Git Large File Storage(Git LFS)是一個 Git 擴展,用於改善大型二進制文件的處理。它通過將這些大型文件的實際內容存儲在遠程服務器上,並在 Git 倉庫中放置一個指針文件來實現這一點。這個指針文件是一個小的文本文件,包含了指向實際存儲位置的必要信息。

如果沒有安裝 Git LFS,當你使用 git clone 克隆一個包含 LFS 對象的倉庫時,Git 只會克隆包含指針的文本文件,而不是大型文件的實際內容。這是因為 Git 默認不知道如何處理這些指針文件所指向的大型文件。

這些文本指針文件通常包含以下信息:

  • 版本信息,表明該文件是由 Git LFS 管理的
  • 大型文件的 SHA-256 哈希值,用於唯一標識文件內容
  • 大型文件的大小

例如,一個 Git LFS 指針文件可能看起來像這樣:

version https://git-lfs.github.com/spec/v1
oid sha256:ce013625030ba8dba906f756967f9e9eef7e9b40e4e8b3464285c1a31a2a7a31
size 12345

如果你想要克隆倉庫並獲得大型文件的實際內容,你需要先安裝 Git LFS。一旦安裝並設置好,當你克隆倉庫或拉取更新時,Git LFS 會自動替換這些指針文件為對應的大型文件。

以下是添加 Git LFS 到你的 Git 倉庫的流程:

安裝 Git LFS

首先,你需要在你的機器上安裝 Git LFS。這可以通過不同的方式完成,取決於你的操作系統。

對於 Windows,你可以使用 Chocolatey

choco install git-lfs -y

對於 macOS,你可以使用 Homebrew

brew install git-lfs

對於 Ubuntu/Debian:

sudo apt-get install git-lfs -y

初始化 Git LFS

安裝完 Git LFS 之後,你需要在你想要使用它的倉庫中初始化它。這可以通過執行以下命令完成:

git lfs install

選擇要追蹤的文件類型

接下來,你需要指定哪些文件類型應該由 Git LFS 處理。這是通過使用 git lfs track 命令來完成的。例如,如果你想要追蹤所有 .zip 文件,你可以執行:

git lfs track "*.zip"

這將會更新 .gitattributes 文件,將指定的文件模式添加到其中。

添加文件並提交

將文件添加到你的倉庫中,就像你通常使用 Git 一樣:

git add file.zip
git commit -m "Add large file"

推送到遠端倉庫

最後,當你推送到遠端倉庫時,Git LFS 將會自動處理大文件的上傳。

git push origin main

請注意,當你克隆或拉取使用 Git LFS 的倉庫時,你可能需要使用特殊的命令來拉取大文件:

git lfs pull
標籤 :

相關文章

如何配置多個 git ssh keys 並依照專案動態切換 git config

如何配置多個 git ssh keys 並依照專案動態切換 git config

我有時候會在公司的電腦開發自己的專案,也會在家裡的電腦開發公司的專案,這時候就會遇到一個問題,就是公司的 Git 用的是公司的帳號,而自己的專案用的

閱讀更多
ShopBack 現金回饋指南:如何輕鬆獲得最高 40% 的購物回饋再送 100 元現金回饋

ShopBack 現金回饋指南:如何輕鬆獲得最高 40% 的購物回饋再送 100 元現金回饋

在這個網購盛行的時代,我們都希望能夠在購物的同時,也能獲得一些額外的好處,對吧?今天,我要介紹的是一個能讓你在網購時賺取現金回饋的平台 - Sh

閱讀更多
Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 是一款輕巧且功能強大的文本編輯器,專為多語言程式設計打造,提供豐富的語法高亮和易於安裝的插件。其設定檔案採用 JSON 格式,便於用戶進行個性化

閱讀更多