You can wget
您可以从 GitHub 存储库获取 tar 文件(archive https://stackoverflow.com/questions/4051803/git-archive-vs-cp):
wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz
# better, if the certificate authorities are present:
wget https://github.com/User/repo/archive/master.tar.gz
将从用户“User”的存储库“repo”中获取名为“master”的文件。
The 更新了 V3 API 网址 https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#download-a-repository-archive-tar is:
https://api.github.com/repos/User/repo/:archive_format/:ref
#
# two possibilities for fomat:
https://api.github.com/repos/User/repo/tarball/master
https://api.github.com/repos/User/repo/zipball/master
# from github example:
$curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz
那么你可以tar xpvf master
,获取完整档案。它将按照中描述的命名约定创建一个目录你提到的问题 https://stackoverflow.com/questions/6334040/when-i-download-a-zip-from-github-what-is-the-hex-string-at-the-end-of-the-file.
无需 Git 二进制文件即可从 GitHub 获取存档,这要归功于它们下载服务“Nodeload” https://github.com/blog/678-meet-nodeload-the-new-download-server.
ligemer https://stackoverflow.com/users/2085469/ligemer建议的在编辑中 https://stackoverflow.com/review/suggested-edits/13466031下面的例子:
编辑 2016-08-25 - 使用 Wget、变量和解压的 Shell 示例:
#!/bin/bash -ex
# arguments:
# token = $1
# organization = $2
# repo name = $3
# branch = $4
wget --header="Authorization: token ${1}" --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos/${2}/${3}/tarball/${4} | tar xz
通过以下方式致电:
$ scriptName.sh token my-organization site.example master
上面的命令将下载 GitHub 文件夹并将其解压到与脚本相同的目录。
迪奥戈·昆特拉 https://stackoverflow.com/users/4248833/diogo-quintela建议在评论中 https://stackoverflow.com/questions/8377081/github-api-download-zip-or-tarball-link/8378458#comment67958619_8378458:
以下示例允许下载、解压并剪切顶级目录
curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1