下载GitHub仓库中的指定文件夹内容

2020年4月10日 3216点热度 6人点赞 0条评论
近最都在学习编译OpenWrt固件,但在使用Lienol的OpenWrt源码编译固件时,又想将Lean的 OpenWrt 的源码中的 luci-app-ssr-plus 插件一并编译进去,就只需要单独下载luci-app-ssr-plus文件夹和关相依赖包,GitHub默认是没法指定下载一个文件夹的。于是查找了下资料,发现了一个方法可以下载指定文件夹,现将方法作为一个备忘整理记录下来。

一、下载所有文件

下载GitHub下所有的项目文件的话非常简单,在可以点击其主页下的Clone or download下的Download Zip 直接下载到本地电脑。

或者复制其链接用git clone命令。如下载 Lean's OpenWrt 的源码可以使用如下命令:

git clone https://github.com/coolsnowwolf/lede

二、下载指定文件夹

但是,经常你可能会有这样的需求:我们只希望从Git仓库里取指定的文件夹出来。在SVN里面,这非常容易实现,因为SVN基于文件方式存储,而Git却是基于元数据方式分布式存储文件信息的,它会在每一次Clone的时候将所有信息都取回到本地,即相当于在你的机器上生成一个克隆版的版本库。下面我就以在Ubuntu系统下单独下载Lean's OpenWrt 的源码中的 luci-app-ssr-plus 插件为例进行操作演示:

1、安装svn工具,输入安装命令:

apt install subversion

2、将GitURL转换成SVNURL

如luci-app-ssr-plus 插件文件夹URL:
https://github.com/coolsnowwolf/lede/tree/master/package/lean/luci-app-ssr-plus
将URL中的 /tree/master/ 换成 /trunk/
https://github.com/coolsnowwolf/lede/trunk/package/lean/luci-app-ssr-plus
其他地址以此类推就可以了。

如果不是master分支:

只需要将 /trunk/ 换成 /branches/分支名称/ 就行了

3、使用svn下载

输入命令:

svn checkout https://github.com/coolsnowwolf/lede/trunk/package/lean/luci-app-ssr-plus  package/luci-app-ssr-plus

就可以单独下载Lean's OpenWrt 的源码中的 luci-app-ssr-plus 插件到package/luci-app-ssr-plus目录下。

 

别外还可以直接进入这个网站:DownGit 打包指定文件夹并下载。

信仰飘扬

行尽天涯 静默山水间