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