背景
有時(shí)候,一個(gè)倉(cāng)庫(kù)太大(包含很多個(gè)工程),下載費(fèi)時(shí),又占電腦的空間。
如何只下載其中一個(gè)工程(子目錄)呢?
稀疏檢出(Spare Checkout)
git 的 Spare Checkout 功能可以只 clone 指定的子目錄。
在 checkout 的時(shí)候,只跟蹤符合配置文件 .git/info/sparse-checkout 里面寫入的文件,別的文件跟不存在一樣。
具體步驟如下:
$ mkdir sample_camera # 創(chuàng)建一個(gè)與要 clone 的倉(cāng)庫(kù)同名或不同命的目錄
$ cd sample_camera
$ git init # 初始化
$ git remote add origin https://gitee.com/harmonyos/samples.git # 增加遠(yuǎn)端的倉(cāng)庫(kù)地址
$ git config core.sparsecheckout true # 設(shè)置 Sparse Checkout 為 true
$ echo "HarmonyOS_NEXT/Media/Camera" >> .git/info/sparse-checkout # 將要部分 clone 的目錄相對(duì)根目錄的路徑寫入配置文件
$ git pull origin master # pull 下來(lái)代碼
如果只想保留最新的文件,而不需要查看歷史記錄文件,可以淺克隆,只需要將上面命令的最后一步改為 git pull --depth 1 origin master