如何从GitHub下载源代码(ZIP格式)?

292

我看到了类似这样的奇怪东西:

http://github.com/zoul/Finch.git

现在我不是CVS、SVN等方面的专家。当我在浏览器中打开它时,它告诉我我做错了什么事情。所以我赌我需要一些黑客工具?一些客户端?

(我的意思是…为什么不提供一个ZIP文件呢?难道世界还不够复杂吗?)

15个回答

249
当仓库所有者没有准备zip文件,而你只想要一个下载来自己使用时会发生什么?答案是有的,你不需要经历那可怕的过程去在GitHub上下载软件、安装和注册密钥等等!

只需简单地将额外路径“/zipball/master/”添加到仓库URL的末尾,就可以下载整个仓库的zip文件。

例如:

http://github.com/zoul/Finch/

变成:

http://github.com/zoul/Finch/zipball/master/

然后它会给你一个zip文件供下载。

4
很棒的信息,我的朋友。有很多时候我想下载不同的分支而又不想安装Git。说实话,我不明白为什么没有直接的下载链接... - Zaptree
5
希望这个链接起作用,但我没有运气:https://github.com/facebook/php-webdriver/ -- 当我在该网址末尾添加“zipball/master/”时,只会得到一个错误消息。我正在回应原始评论者... 我只是不明白为什么从Github上下载源代码如此困难。我不想要Git客户端,也不想学Git,我只想下载眼前的文件 :-) - Eric
4
@Eric - 它对我起作用了:https://github.com/facebook/php-webdriver/zipball/master/ - scubasteve
2
绝佳的提示! 只需确保在添加/zipball/master/时,您位于存储库的顶层文件夹中。 - Peter H
2
@PeterH说了,你需要在顶层文件夹,否则会出现404错误! - Ted
显示剩余5条评论

203
要通过类似以下的 URL 来克隆该存储库:是的,您需要一个客户端,而该客户端是 Git。这将允许您进行更改、创建自己的分支、与其他开发人员同步并维护您自己的源代码,您可以轻松地使其保持最新状态,而无需每次下载整个项目并覆盖您自己的更改等。ZIP 文件无法做到这一点。
这主要适用于想要开发源代码的人,而不是只想获取源代码且不进行更改的人。
但是你也可以获得ZIP文件:
单击http://github.com/zoul/Finch/,然后单击绿色的Clone or Download按钮。看这里:

输入图像描述


2
有没有办法不必下载整个代码库?比如,如果代码库是一个“插件”仓库,而你只需要一个插件? - Mala
2
据我所知,没有不使用Github API的方法。 - Christoph
在该网址上没有这样的按钮。实际上,该网址上的内容看起来与您的截图完全不同。GitHub 的 zip 下载功能被移除了吗? - barneypitt
@barneypitt,绿色按钮仍然存在,但现在标记为“代码”。只需单击该绿色按钮,然后单击“下载ZIP”即可。 - S Williams
谢谢。不确定我是怎么错过它在"代码"下面的! - barneypitt

186

更新于2016年7月

2016年7月开始,“Download ZIP”按钮已经移动到标题下方“Code”选项卡下Clone or download的右侧极端位置:

Download ZIP (2013)


如果你没有看到这个按钮:

  • 请确保你已经在右侧导航菜单中选择了<>Code选项卡,或者
  • 该仓库可能没有准备好zip文件。将/archive/master.zip添加到仓库URL的末尾即可生成主分支的zip文件:

http://github.com/user/repository/ 变成 http://github.com/user/repository/archive/master.zip

以获取主分支源代码的zip文件。你也可以通过用分支或标签名称替换上面URL中的master来做相同的操作。


5
如果您想要一个 tarball 而不是 zip,您可以将链接末尾的 ".zip" 改为 ".tar.gz"。 - Eric
3
似乎默认选择了<>Code,但实际上并没有。请点击它! - Steve Wash
感谢@SteveWash。这太疯狂了。我也以为代码选项卡已经被选中了。这真的是很差的用户界面(但是,好吧,一旦你学会了这个技巧,你就会永远知道它..) - Mike Gledhill
如果您将标签命名为 v1.0,则 zip 文件会忽略 v 并下载 repo-1.0。这是 Github 的一个 bug 吗? - Debaprio B
@DebaprioB 确实是一个 bug,尽管它看起来他们费了很大的力气去实现这种行为。 - bit2shift

44

通过 curl 下载您的存储库压缩文件:

curl -L -o master.zip http://github.com/zoul/Finch/zipball/master/

如果您的存储库是私有的:

curl -u 'username' -L -o master.zip http://github.com/zoul/Finch/zipball/master/

来源:Github 帮助


太棒了!非常顺利,我在一个没有浏览器的批处理系统中有权限限制,而这个正是我所需要的! - HoofarLotusX
使用 wget 更加简短:wget https://github.com/zoul/Finch/archive/master.zip - Noam Manos
好的。但它已经过时了。请有人更新它。 - Pushkraj Jori

26
截至2016年12月,“克隆或下载”按钮仍在<> Code标签下,但现在位于标题的最右侧。

Github Clone or download screenshot


这是否也适用于旧的布局? - Makoto
嘿,我看不到那个按钮!https://github.com/Antonioya/blender/tree/master/measureit - Anson Savage
1
可能是因为您没有登录。我刚刚检查了一下,github的布局有点变化。不过现在按钮是绿色的,标签为“克隆或下载”(对于您的存储库,下载按钮链接为:https://github.com/Antonioya/blender/archive/master.zip) - Bendy
1
我已经登录了,但仍然看不到任何绿色按钮 - 而不是“克隆或下载”,它显示为“历史记录”。 - Miryafa
1
@Miryafa 因为该存储库的下载已被禁用。请检查Readme上的注释。它说:“*** 注意 *** MeasureIt现在是Blender官方发布的一部分,因此此Git存储库仅供参考。如果您想要下载最新版本或报告错误,请使用Blender网站。” - Anwar
这个链接在移动设备上在哪里?到目前为止,我一直点击“桌面版本”,然后使用这种方法获取zip文件。 - undrline - Reinstate Monica

22

虽然这是一个相当古老的问题,但我有我的两分钱要分享。

你也可以下载tar.gz仓库

像其他答案中提供的zipball链接一样,这里也有一个tarball链接,它以tar.gz格式下载git存储库的内容。

curl -L http://github.com/zoul/Finch/tarball/master/

更好的方式

Git还提供了另一种URL模式,您可以在url末尾简单地附加要下载的文件类型。如果您想批量处理这些url或使用bash脚本,则此方式更好。

curl -L http://github.com/zoul/Finch/archive/master.zip

curl -L http://github.com/zoul/Finch/archive/master.tar.gz

下载特定的提交或分支

在上面的URL中将master替换为commit-hashbranch-name,如下所示。

curl -L http://github.com/zoul/Finch/archive/cfeb671ac55f6b1aba6ed28b9bc9b246e0e.zip    
curl -L http://github.com/zoul/Finch/archive/cfeb671ac55f6b1aba6ed28b9bc9b246e0e.tar.gz --output cfeb671ac55f6b1aba6ed28b9bc9b246e0e.tar.gz

curl -L http://github.com/zoul/Finch/archive/your-branch-name.zip
curl -L http://github.com/zoul/Finch/archive/your-branch-name.tar.gz --output your-branch-name.tar.gz

2
这正是我一直在寻找的内容 - 一个可以通过命令行获取当前主分支的tarball的URL。然而,你需要在你的命令中添加-o <file>,否则你只会将二进制文件打印到标准输出。所以,在这个例子中:curl -L https://github.com/zoul/Finch/archive/master.tar.gz -o Finch-master.tar.gz(或者你想要的任何文件名)。我还额外添加了https:作为保险措施。 - chimbo

13

5
这无法下载为 zip。 - GorvGoyl

7

我也曾遇到过这个问题。"下载"按钮在最右边,但你需要在顶层文件夹中才能下载你所看到的内容。尽可能往上跳转到父/根文件夹,然后寻找下载按钮。


3

对于使用Windows系统并且在终端下载repo文件夹的zip包时遇到问题的人:

url -L http://github.com/GorvGoyl/Notion-Boost-browser-extension/archive/master.zip --output master.zip


1
在Chrome浏览器中,如果你将光标悬停在Download ZIP上,它将在浏览器底部给出链接。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接