git拉取仓库的指定目录

108 阅读2分钟

问题

在工作过程中,经常需要参照一些示例代码。但是一些官方的示例代码往往都是随着某个产品或组件而发布,而仓库的体积往往比较大。因此,考虑是否能够通过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

执行结果如下

image.png

image.png

4)切换分支

以上只是拉取了仓库的main分支,查看本地分支仅有master分支;查看远程分支也仅有origin/main分支

git branch 

git branch -r

拉取仓库

git fetch origin

再次查看远程分支

git branch -r

image.png

切换到其他分支,这里切换到2.3.x分支

git checkout -b 2.3.x origin/2.3.x

结论

git的指定目录拉取,对于灵活选取仓库资源非常有帮助。同时,在设置时需要注意git配置不要设置成全局配置,进而影响其他git操作。

引用