现在我们开发项目时已经习惯了面向搜索,面向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 ls
和svn 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/
后就是文件路径。
假如现在要下载tasks(https://github.com/jquery/jquery/tree/master/build/tasks
)这个文件夹,运行
svn export https://github.com/jquery/jquery.git/trunk/build/tasks
这样就下载好了。当然,单独下载文件也是可以的。
其他还有一些人提到的浏览器扩展或写的工具库没试过就不说了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。