有没有这样的苦恼:仓库太大,只想下载其中某些文件(夹)?
一招解决:bash down_folder_from_git.sh
运行前,先修改开头三个变量
原理: 稀疏检出 让工作树仅包含自定义的文件
#!/usr/bin/bash
addr='https://github.com/facebook/infer' # 仓库
branch='main' # 分支
obj='Makefile FILES.md scripts examples' # 要下载文件夹(夹)
# 1.获取该仓库元信息
git clone -n ${addr}.git || exit 1
cd ${addr##*/}
# 2.设置git,并指定要下载哪些文件(夹)
git config core.sparseCheckout true
git sparse-checkout set /${obj// / \/}
# 3. 下载文件夹
git checkout $branch
rm -rf .git