github与svn实现git仓库单文件(夹)下载

很早就过想在github仓库下载指定分支下的某个文件(夹),特别是对于一些资源收集归档的仓库只是想去下载自己关心的部分,要整个仓库clone的话会有不必要的时间和网络资源的浪费。当时查到可以使用git1.7.0开始支持的sparse-checkout的方式解决此问题,但是对于只是想下载一个文件(夹)资源的需求来说略有麻烦。

最近又有小伙伴询问此类问题的解决方式,在交流中发现git-svn可以用来github克隆指定文件夹,这说明github已经支持svn1,那么通过svn实现在github下载单文件(夹)也就比较简单了,现将目前的常用解决方案整理如下:


git-svn

1
2
3
4
5
6
7
# 此方法只可实现对文件夹的下载
# 下载 master 文件夹
$ git svn clone <rul>/trunk/<dir> <localdir>
# 下载 指定brach文件夹
$ git svn clone <rul>/branches/<branchname>/<dir> <localdir>
# 下载 指定tag文件夹
$ git svn clone <rul>/tags/<tagname>/<dir> <localdir>

svn

1
2
3
4
5
6
7
8
9
10
# 查看仓库trunk、branch及tag信息
$ svn list <url>
# 下载 master 文件夹
$ svn checkout <rul>/trunk/<dir> <localdir>
# 下载 指定brach文件夹
$ svn checkout <rul>/branches/<branchname>/<dir> <localdir>
# 下载 指定tag文件夹
$ svn checkout <rul>/tags/<tagname>/<dir> <localdir>
# 下载 单个文件
$ svn cat <rul>/trunk/<tagname>/<dir>/<file> > <file>

other tools

  • DownGit 直接键入对应分支文件目录即可下载文件

参考文档