sparse checkout 的功能可以讓使用者追蹤儲存庫裡特定的資料夾或檔案,不需要clone整個專案。新版本 git 2.6 有新指令 sparse-checkout 讓操作更簡單方便,關於 sparse-checkout 的設定方法可以參考「[Git] 如何使用 sparse checkout 下載 repository 內特定資料夾或檔案」進行操作,以下主要介紹如何手動安裝 git以及常用的 sparse-checkout 指令。
安裝
1. 安裝相關套件
安裝編譯 Git 所需的函式庫:curl, zlib, openssl, expat 和 libiconvsudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev
2. 下載 git 原始碼
先下載 git 原始碼,接著解壓縮並進入目錄。wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz tar zxvf git-2.26.0.tar.gz git-2.26.0※如果需要其他 git 版本 [https://mirrors.edge.kernel.org/pub/software/scm/git/]
3. 編譯與安裝
編譯的時間稍微比較久./configure --prefix=/usr \ --with-gitconfig=/etc/gitconfig \ --with-python=python3 && make安裝
sudo make install
安裝後並沒有明顯的成功訊息,所以很難確定到底有沒有裝好,所以可以透過指令查看版本:
git --version git version 2.26.0
指令說明
◆ sparse checkout 設定初始化
git sparse-checkout init開啟設定之後,在目錄會自動新增檔案 sparse-checkout ,預設內容是:
/* !/*/代表根目錄內第一層內所有的檔案都列入追蹤;換句話說,根目錄裡任何資料夾內的檔案(包含資料夾)都會被忽略。
必須先確定檔案 .git/info/sparse-checkout 已經存在,使用下列的指令才不會報錯:
◆ 列出目前追蹤的檔案
git sparse-checkout list
◆ 新增指令資料夾或檔案
語法與 .gitignore 相似,最簡單是直接列出完整的檔案路徑,根據需求可以列出複雜的規則,像是追蹤特定的檔案附檔名,或是排除特定的項目。git sparse-checkout add [folderPath/filePath]
◆ 更新及應用
將資料夾或檔案路徑規則寫入 sparse-checkout ,並馬上採用。git sparse-checkout set [folderPath/filePath]
◆ 取消
git sparse-checkout disable
參考資料:
https://git-scm.com/download/linux
https://git-scm.com/book/zh-tw/v2/開始-Git-安裝教學
http://www.linuxfromscratch.org/blfs/view/svn/general/git.html