Git 克隆子目錄

背景

有時(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容