有時候專案比較小,這些小的專案又比較多,每個都建一個倉庫就會很麻煩,如果可以把這些小的專案放在一個倉庫裡,同時每個開發人員只拉取和修改自己的專案到本地,互相不影響,那麼怎麼辦呢?
git提供了一個Sparse Checkout模式,操作如下:
1、建立本地工作目錄,同時關聯目標主倉庫
1、mkdir project_folder
2、cd project_folder
3、git init
4、git remote add -f origin <origin_url>
2、本地工作目錄開啟git的sparse checkout模式:
git config core.sparsecheckout true
3、指定要單獨拉取的目錄
echo "cfg/*"> .git/info/sparse-checkout
4、拉取
git pull origin master
如果目標倉庫是空的,需要注意了:
空倉庫無檔案,所以3、4執行無效。此時只要有一個操作提交了檔案到目標倉庫,此後操作都被視為根倉庫操作,每次拉取提交都會影響整個倉庫
所以這個時候的操作應該是
先在目標倉庫建立專案目錄,創一個readme,再執行上面的1234,指定建立的專案目錄,一切就順當了.
這一步的線上操作是直接在頁面新增目錄
每次git pull origin master時,都會拿到全部目標倉庫下的子目錄更新的資訊,但是本地只會下載當前指定的目錄