如何从 Github 上下载单个文件夹?
Git 是个好东西,Linus 大神的小作品,版本跟踪,分支控制管理的神器。Github 也是个神器,一堆开源代码随意取用。然而,有时候,某个代码是个集合,又或者太大,我们只需要其中的一部分,比如某个文件或者某个文件夹,不必下载整个仓库,只需要利用一些小技巧下载需要的部分即可。
下载单个文件
从 github 这里代码托管网站上下载单个文件比较简单,直接找到需要的文件,然后点击右上角的 raw
或者 Download
,即可以得到源文件,然后下载即可。
更进一步,https://raw.githubusercontent.com/{username}/{repo}/{branch}/{file_path}/{file_name}
是源路径,使用 wget、curl、或者其他的下载工具直接下载即可,其中,{username}
、{repo}
、{branch}
、{file_path}
、{file_name}
分别是 github 用户名、repo 名、分支(一般是 master)、文件路径和文件名。
下载文件夹
此方法亲测好评!
如果是想要下载某个文件夹的话,上述方法可能就不是最好的办法了,一个更好的办法是利用 svn
即可。
如想要下载 {username}
的 {repo}
里的 {dir}
文件夹,即
如果是下载https://github.com/{username}/{repo}
主分支 master
下面的 {dir}
文件夹,其浏览器路径是https://github.com/{username}/{repo}/tree/master/{dir}
,只需将 /tree/master/
换成 /trunk/
然后用 svn
下载,即:
svn checkout https://github.com/{username}/{repo}/trunk/{dir}
如果下载特定分支 {branch_name}
下面的文件夹,只需要将 /trunk/
换成 /branches/{branch_name}/
就行了。
Chrome 插件
借助 Chrome 插件,可以实现直接下载文件夹,相关的插件有:GitZip for github、Octotree、Octo Mate 等
高版本 Git
这个方法稍微有点繁琐,但其好处是无需借助其他的第三方工具就能实现。
Git 1.7.0 以后加入了 Sparse Checkout
模式,这使得 Check Out 指定文件或者文件夹成为可能。具体实现方法如下:
首先创建一个空的本地仓库,同时将远程 Git Server URL 加入到 Git Config 里面去
mkdir project_folder cd project_folder git init git remote add -f origin <url>
在 Config 中设置允许使用 Sparse Checkout 模式
git config core.sparsecheckout true
- 编辑
.git/info/space-checkout
文件,告诉 Git 你需要哪些文件或者文件夹,写入其中即可 最后,以正常方式从服务器下 pull 下来即可
git pull origin master --depth=1
参考
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »