為什麼 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

相關文章

使用 Chocolatey 快速安裝和管理 Windows 軟體

使用 Chocolatey 快速安裝和管理 Windows 軟體

作為一名熟悉 Linux 或 MacOS 的用戶,我們習慣於使用命令列工具來管理軟體。長久以來,Windows 缺少了這樣的工具,直到 Chocolatey 的出現。Chocolatey 為

閱讀更多
羅技 MX Master 2S 無線人體工學滑鼠:終極使用評價

羅技 MX Master 2S 無線人體工學滑鼠:終極使用評價

今天我要帶大家認識一款在高端滑鼠市場上深受喜愛的產品。雖然它不是羅技的最新力作,但它卻是我用過的最愛,也是最好用的滑鼠之一。那就是羅技的 MX Master

閱讀更多
Kobo Nia 6” 閱讀器:您的隨身知識庫

Kobo Nia 6” 閱讀器:您的隨身知識庫

前言:探索 Kobo Nia 6” 的魅力 今天我要與大家分享的是一款我近期非常喜愛的電子閱讀器 — Kobo Nia 6”。在這個數位時代,電子閱讀器已經成為了許多書迷的必備工

閱讀更多