有时候项目比较小,这些小的项目又比较多,每个都建一个仓库就会很麻烦,如果可以把这些小的项目放在一个仓库里,同时每个开发人员只拉取和修改自己的项目到本地,互相不影响,那么怎么办呢?
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时,都会拿到全部目标仓库下的子目录更新的信息,但是本地只会下载当前指定的目录