git 按需下载仓库某个文件夹
应用场景
在
github
有一个很大的仓库,但是自己真正使用的只有某几个文件夹,那么如何只下载这几个文件夹呢?
这里就要使用
git
的
sparse-checkout
功能
下面主要介绍三种情况
- 本地没有此仓库代码
- 本地已有此仓库代码
- 禁用该功能
本地没有此仓库代码
本地建立一个新的仓库
git init my_source_project
cd my_source_project
添加远程仓库地址
这里的远程仓库地址即为需要下载部分代码的仓库地址
git remote add origin https://github.com/tyustli/threadx-l475.git
在本地仓库里面启用sparse-checkout
git config core.sparseCheckout true
添加需要下载的文件夹
echo "/docs">>.git/info/sparse-checkout
echo "/stm32l475">>.git/info/sparse-checkout
也可以用编辑器直接打开
.git/info/sparse-checkout
文件并写入,该文件语法规则和
.gitignore
文件一样
下载需要的代码
git pull origin master
当然也可以先
git branch --set-upstream-to=origin/master
然后
git checkout master
git pull
本地已有此仓库代码
如果本地已经建了版本库,要使用这个功能,可以进入版本库的目录,执行以下命令
git config core.sparsecheckout true // 使能该功能
echo "">.git/info/sparse-checkout // 清空该文件
echo "/docs">>.git/info/sparse-checkout // 添加需要下载的文件
echo "/inc">>.git/info/sparse-checkout // 添加需要下载的文件
echo "/src">>.git/info/sparse-checkout // 添加需要下载的文件
git checkout master
git pull
后续有需要下载的文件夹
echo "/xxx">>.git/info/sparse-checkout
git checkout master
git pull
禁用该功能
git config core.sparsecheckout false
echo "*">.git/info/sparse-checkout
git checkout master
git read-tree...
参考链接
总结
本文主要介绍了
sparse-checkout
的功能,如何下载远程
git
仓库中的部分代码及文件夹。
版权归原作者 tyustli 所有, 如有侵权,请联系我们删除。