對於較大的代碼倉庫來說,如果只是想查看和學習其中部分源代碼,選擇性地下載部分路徑中的代碼就顯得很實用了,這樣可以節省大量等待時間。
比如像 Chromium 這種,倉庫大小好幾 G 的。
clone 倉庫中部分路徑下的代碼分三步,
- 本地初始化一個空倉庫,將目標倉庫 git 地址設置成遠端 origin。
- 配置需要下載代碼的路徑到
.git/info/sparse-checkout
文件,多個路徑可每個一行進行書寫。 - 最后執行
git pull
執行代碼的拉取。
$ git init <repo>
$ cd <repo>
$ git remote add -f origin <url>
$ git config core.sparseCheckout true
$ echo "some/dir/" >> .git/info/sparse-checkout
$ echo "another/sub/tree" >> .git/info/sparse-checkout
$ git pull origin master
目錄增刪
如果后續想增刪路徑,直接編輯 .git/info/sparse-checkout
文件,然后執行 git read-tree
。
$ vi .git/info/sparse-checkout
$ git read-tree -mu HEAD
# 或
$ git read-tree --dry-run HEAD
切換到完整模式
如果哪天不想獲取部分代碼,而想拉取整個倉庫的完整代碼,同樣地,編輯 .git/info/sparse-checkout
文件替換其內容為如下:
/*
然后再執行 git read-tree
即可。