?git init my-project
rem 进入目录
cd my-project
git remote add origin http://30.100.28.41:80/my-project.git
git config core.sparsecheckout true
rem(下面这句是灵魂,是核心,是光,是电,是唯一的神话)
echo /parent-dir/src/main/child-dir/ >> .git/info/sparse-checkout
echo /parent-dir/child-dir2/ >> .git/info/sparse-checkout
git fetch --depth 1 origin master
rem 上面语句会根据git整体仓库的大小来花费时间,越大,花费时间越长。
rem 如果git仓库日积月累变得很大,这个SCM的管理就是一个不良管理,
rem 它使得即使想检出一个子目录,也变得尤其的慢。
git checkout master
?
rem 以下非必须,只是查看结果
dir parent-dir\src\main\child-dir
dir parent-dir\child-dir2
ls parent-dir/src/main/child-dir
可以看出,git 检出子目录,是相当繁琐的,尤其是代码库体积很大的情况下。
git的整体仓库概念、分支比较特性,决定了它更适合做严肃的整体软件项目代码的开发,不适合做松散的、一般性的项目的子目录检出、权限管理,这个场景或许svn更合适。
|