1

现在我们开发项目时已经习惯了面向搜索,面向GitHub编程,有时候想把仓库中的某个文件夹或文件下载到本地,通常只能通过git clone先把整个仓库克隆到本地,遇到仓库中文件比较多或有较大文件时常常需要等待很长时间。

最近学习开发VS Code extension,文档中给出了官方例子的仓库:https://github.com/microsoft/...

图片描述

可以看到,这个仓库下有2-30个例子,我要开发的扩展和树视图有关,所以想把tree-view-sample下载下来运行参考。现在我要做的是把整个仓库克隆下来,或者把这个文件夹下的文件一个个下载下来(下载单个文件可以用图中左侧Octotree这个浏览器扩展,比较方便),但是都很麻烦。

于是我搜索有没有下载仓库子目录的方法,发现stackover上有挺多讨论的,很多人给出了不同的方案,比如这里提到的方法

> 1. git init bootstrap && cd bootstrap 
> 2. git config core.sparsecheckout true 
> 3. echo '/js/tests/*' >> .git/info/sparse-checkout 
> 4. git remote add origin https://github.com/twbs/bootstrap.git
> 5. git pull origin master 

以前试验过确实可行。还有其他比如git clone --depth ...git archive ...,这些使用git命令的方法看起来都挺复杂的,而且像是把整个仓库下载下来后再做处理。(当然我没验证过╮(╯▽╰)╭)

还看到很多人提到了用SVN,自从用了Git后,就挺排斥SVN的,但是看到一些答案说使用SVN很简单,我就试了下,变身王境泽

首先,我不需要SVN客户端,只要简单命令行工具,有人推荐SlikSVN就用它了。(安装点的飞快,好像出错最后还回退了,不过文件倒是安装上了,最后加上环境变量就好了╮(╯▽╰)╭)

主要用到两个命令,svn lssvn export,前者和shell命令ls差不多,当然没有那些“花里胡哨”的选项。后者跟git clone差不多吧,就是下载。

基本用法:

svn export https://github.com/username/repo-name/trunk/path dest

其中trunk大概是master吧,dest是下载到本地的目录名,可省略。

下面以jQuery仓库为例,仓库地址:https://github.com/jquery/jquery

首先运行

svn ls https://github.com/jquery/jquery

结果提示错误@_@,后面加上.git就好,有些仓库要加,有些不需要,我也不懂为什么,出错了先加上吧,以后研究。

svn ls https://github.com/jquery/jquery.git

列出branches/tags/trunk/,这里把它们当成目录理解就好了,可以继续svn ls下一层的路径。.../branches/xx/tags/x.y.z/...trunk/后就是文件路径。

假如现在要下载taskshttps://github.com/jquery/jquery/tree/master/build/tasks)这个文件夹,运行

svn export https://github.com/jquery/jquery.git/trunk/build/tasks

图片描述

这样就下载好了。当然,单独下载文件也是可以的。

其他还有一些人提到的浏览器扩展或写的工具库没试过就不说了。


vczhan
2.6k 声望514 粉丝