為什麼 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
標籤 :
comments powered by Disqus

相關文章

掌握 Git 常用設定與指令讓你的程式開發更有效率

掌握 Git 常用設定與指令讓你的程式開發更有效率

Git 是一款強大的開源版本控制工具,被廣泛用於追蹤程式碼的變更、創建和切換分支、合併程式碼,以及協同開發等。考慮到它的多功能性,我將我常用的 Git 指

閱讀更多
沛瑞科技混合訊號 USB 示波器評測:入門者的最佳選擇!

沛瑞科技混合訊號 USB 示波器評測:入門者的最佳選擇!

探索沛瑞科技的混合訊號 USB 示波器 當我們談到嵌入式工程師的日常工作,與硬體信號的互動是不可或缺的部分。有時候,擁有一台專屬的設備可以使任務執行得

閱讀更多
小米水離子吹風機 H500:女性的福音 - 冷熱風交替

小米水離子吹風機 H500:女性的福音 - 冷熱風交替

家中的吹風機壞掉後,我開始尋找一款能夠提升生活質感的吹風機。在這次的探索中,我發現了一款名為小米水離子吹風機 H500 的產品。這款吹風機不僅具有獨特

閱讀更多