Contents

从GitHub下载Tarball

1. 概述

GitHub 允许我们通过两种方式获取存储库:

  1. 使用git clone
  2. 下载为ziptar文件

虽然 git clone是最常用的方法,但它需要在机器上安装 Git。如果 Git 不可用,我们可以下载 tar 格式的存储库并解压文件系统上的内容。

在本教程中,我们将查看一些 Linux 命令来下载 GitHub 存储库 tarball 并将其解压缩到文件系统中

2. 使用curl命令

我们可以使用*curl 命令访问任何 HTTP URL。由于 GitHub 允许我们通过 HTTP 下载存储库存档,我们可以使用curl* 下载这个 tarball:

curl -L  https://github.com/xxx/demo/tarball/master -o dummy.tgz

我们使用 -L 标志来允许 curl跟随重定向。这是必要的,因为 GitHub 将所有下载请求重定向到存档位置如果我们跳过此标志,我们将获得带有重定向标头的 302 HTTP 状态代码

上述命令会将 .tgz 文件下载到执行curl命令的同一位置。稍后,我们可以使用*tar *命令解压这个文件。

我们也可以内联解包:

curl -L https://github.com/xxx/demo/tarball/master | tar -xz

在大多数情况下,  curl可以与 GitHub 握手 HTTPS 连接。**但是,如果此连接失败,我们可以使用curl中的不安全选项:

curl -L -k https://github.com/xxx/demo/tarball/master | tar -xz

3. 使用wget命令

除了 curl命令,这是一个执行 HTTP 请求的通用命令,Linux 还提供了一个*wget *命令,它是一个专用的非交互式网络下载器。

它支持 HTTP 和 FTP 协议,因此也可用于从 GitHub 下载存储库存档

wget https://github.com/xxx/demo/tarball/master -O dummy.tgz

同样,上述命令会将*.tgz*文件下载到执行命令的同一位置。 与 curl命令类似,我们可以内联解压归档文件:

wget https://github.com/xxx/demo/tarball/master -O - | tar -xz

命令  -O 选项将归档内容重定向到标准输出并充当tar命令的输入。

同样,类似于 curl命令,我们可以使用–no-check-certificatewget*中跳过 HTTPS 证书验证*:

wget --no-check-certificate https://github.com/xxx/demo/tarball/master -O - | tar -xz

4. 从私有存储库下载

到目前为止,我们讨论的命令对于从公共存储库下载档案很有用。但是,对于私有存储库,我们需要提供 GitHub 访问令牌

curl -L -k -u token:x-oauth-basic https://github.com/xxx/demo/tarball/master | tar -xz

在这里,令牌是我们需要添加到 GitHub 帐户的字母数字 OAuth 令牌。