git只获取仓库中的某一个文件或者文件夹

最近整理散乱在各处的文件时,想到这个问题,于是在知乎上看到一个方法,测试可行,所以整理在此:

此处以pull我的仓库中https://github.com/mayaobei/RaspBerryPi/tree/master/python/python-qrcode目录为例进行说明

1.创建一个空目录用于存放pull下来的文件

mkdir testSparse

2.初始化git,开启core.sparseCheckout,添加远程仓库

git init
git config core.sparseCheckout true
git remote add -f https://github.com/mayaobei/RaspBerryPi.git

注意这里还是添加仓库名称。在测试的时候remote add要花费很长的时间,比push整个仓库的时间都长!push的时候显示速度能达到600KiB/s,但是add时却仅有可怜的14KiB/s,但是基于cmd的方式不会受限于平台或者浏览器插件,通用性较好,所以还是推荐使用这种方式。

3.添加要pull的文件夹路径到.git/info/sparse-checkout文件

echo python/python-qrcode/* > .git/info/sparse-checkout

如果有多个文件或文件夹,可以这种方式继续添加

4.pull master

git pull origin master

5.完成,当前目录下已经下载好了仓库中python/python-qrcode目录和里面的内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注