跳至主要内容

下载源码压缩包

您可以下载仓库中代码的快照。

源码存档概览

您可以下载 GitHub 上任意分支、标签或特定提交的快照。这些快照由 git archive 命令 生成,提供两种格式:tarball 或 zipball。快照不包含完整的仓库历史记录。如果您需要完整历史,可以克隆仓库。更多信息请参见 克隆仓库

下载源码存档

您可以通过三种方式下载源码存档。

从仓库视图下载源码存档

  1. 在 GitHub 上,导航至仓库的主页面。

  2. 在文件列表上方,点击 代码

    Screenshot of the list of files on the landing page of a repository. The "Code" button is highlighted with a dark orange outline.

  3. 点击 下载 ZIP

从发布页面下载源码存档

  1. 在 GitHub 上,导航至仓库的主页面。

  2. 在文件列表的右侧,点击 Releases

    Screenshot of the main page of a repository. A link, labeled "Releases", is highlighted with an orange outline.

  3. 向下滚动至该发布的 “Assets(资产)” 部分。

  4. 要下载源码,点击 源码(zip) 源码(tar.gz)

从标签下载源码存档

  1. 在 GitHub 上,导航至仓库的主页面。

  2. 在文件列表的右侧,点击 Releases

    Screenshot of the main page of a repository. A link, labeled "Releases", is highlighted with an orange outline.

  3. 在 Releases 页面顶部,点击 Tags

  4. 要下载源码,点击 zip tar.gz

    Screenshot of the "Tags" page of a repository. The zip and tar.gz options are outlined in dark orange.

源码存档 URL

每个仓库都有对应的源码存档 URL。例如,考虑仓库 github/codeql。下载分支、标签或特定提交 ID 的 URL 各不相同。

存档类型示例URL
分支mainhttps://github.com/github/codeql/archive/refs/heads/main.tar.gz
标签codeql-cli/v2.12.0https://github.com/github/codeql/archive/refs/tags/codeql-cli/v2.12.0.zip
提交aef66c4https://github.com/github/codeql/archive/aef66c462abe817e33aad91d97aa782a1e2ad2c7.zip

注意

您可以在上述 URL 中使用 .zip.tar.gz,分别请求 zipball 或 tarball。

源码存档的稳定性

源码存档是在请求时生成的,会缓存一段时间,然后被删除。如果将来再次请求相同的存档,它会重新生成。理解 GitHub 对源码存档的保证非常重要。

  • 只要提交 ID 仍在仓库且仓库名称未更改,使用提交 ID 的存档每次请求时都会拥有相同的文件内容。
  • 由于分支和标签可以指向不同的提交 ID,未来对同一分支或标签的下载可能会得到与之前不同的内容。只要分支或标签仍指向同一提交 ID,文件内容保持一致。
  • 生成 zipball 或 tarball 使用的具体压缩设置可能随时间变化。只要分支或标签未变,解压后的内容不会变化,但外层压缩文件的字节布局可能不同。GitHub 在更改压缩设置前会至少提前六个月通知。
  • 仓库名称是存档内部目录结构的一部分。因此,如果仓库名称变更,根目录名称也会随之改变。

如果您在可重复性(确保每次获得的存档内部文件完全相同)方面依赖源码存档的稳定性,建议使用 存档 REST API 并使用提交 ID 作为 :ref。使用提交 ID 可确保每次获取的存档内部文件内容相同,并且可以避免仓库改写标签或移动分支指针的情况。

如果您在安全性方面依赖存档的稳定性(例如:确保不会解压恶意构造的文件),我们建议使用发布(releases)而不是直接下载源码。更多信息请参见 关于发布

您可以使用 此第三方 GitHub Action 在发布流程中创建并推送这些文件。随后可使用 Release Assets REST API 获取它们。

© . This site is unofficial and not affiliated with GitHub, Inc.