问题
在工作过程中,经常需要参照一些示例代码。但是一些官方的示例代码往往都是随着某个产品或组件而发布,而仓库的体积往往比较大。因此,考虑是否能够通过git拉取仓库的指定目录。
试验
很幸运这个需求在网上也很容易可以找到,参照的资料可以查看引用。
我的需求是需要下载spring-ldap在github的samples目录
1)在本地创建目录spring-ldap-demo
进入目录,初始化仓库
git init
完成初始化之后,添加远程仓库
git remote add origin https://github.com/spring-projects/spring-ldap.git
2)设置稀疏检出配置
这里可以先查看一下本地的git配置
git config --local -l
此时可以看到并没有关于core.sparsecheckout
的配置
进行配置
git config --local core.sparsecheckout true
再次查看git的本地配置,发现已经存在相关配置。
同时,可以查看一下git全局配置,发现全局配置并没有修改,避免影响其他的git拉取操作。
git config --global -l | grep core.sparsecheckout
将需要拉取的目录配置
echo "samples/*"> .git/info/sparse-checkout
3)拉取目录
执行拉取操作,由于spring-ldap的主分支是main,因此命令如下
git pull origin main
执行结果如下
4)切换分支
以上只是拉取了仓库的main分支,查看本地分支仅有master分支;查看远程分支也仅有origin/main
分支
git branch
git branch -r
拉取仓库
git fetch origin
再次查看远程分支
git branch -r
切换到其他分支,这里切换到2.3.x分支
git checkout -b 2.3.x origin/2.3.x
结论
git的指定目录拉取,对于灵活选取仓库资源非常有帮助。同时,在设置时需要注意git配置不要设置成全局配置,进而影响其他git操作。