拉取git仓库的子目录

我们的git仓库目录结构:

http://server/company.git +
                          |
                          +- project1
                          |
                          +- project2
                          |
                          +- project3
                          |
                          +- ...

以前使用svn的时候是可以直接拉取其中一个子项目,像下面这样:

svn checkout http://server/company.git/project1

但是git好像不支持这种用法,网上找了一下相关资料,可以借助git的 Sparse checkout 实现:

git clone http://server/company.git --no-checkout
cd company
git config core.sparsecheckout true
echo "project1/" > .git/info/sparse-checkout
git checkout --
cd ..
ln -s company/project1 ./

git