如何从 GitHub 下载特定提交的.zip?

我想下载一个。但是我不想使用 master,因为每次我下载的时候都会下载一个不同的版本。

这个特殊的库没有标记,所以我不能使用它。

那么,如何下载特定提交 sha 的 source.zip 呢?

59938 次浏览

你可以在下载地址中输入你想要的地址:

https://github.com/{username}/{projectname}/archive/{sha}.zip

作为一般规则,如果您有一个可以工作的 url,您可以用您想要的特定 sha 替换“ master”。

在 Unix 上:

wget https://github.com/{username}/{projectname}/archive/{sha}.zip

请记住,如果这是一个私有回购,那么 wget 将无法工作,除非您也传递一个 OAuth 令牌。

以下是更多相关信息:

从 Private Repo 下载 Git 归档 tarball 遇到麻烦

查看提交代码时,单击右上角的“浏览代码”按钮,然后单击“下载邮政编码”。

这是一个古老的问题,但是想要提到的是,如果只需要提交作为补丁,而不是提交时的整个回购,那么可以使用:

$ wget http://github.com/username/repo/commit/sha1.patch
#                        ^^^^^^^^ ^^^^        ^^^^
#                        change   change      change

/commit.patch部分是重要组成部分。

如果您想要合并一个前一段时间被反转的更改,因此在分叉的回购中不存在,那么这一点特别有用。

对于那些来这里寻找从特定提交(或分支)到 下载特定的文件(或目录)的方法的人:

git_user="user-name"
git_project="project-name"
commit_or_branch="sha-id or branch name"
dir_or_file="path/to/dir-or-file"


archive_url="https://github.com/${git_user}/${git_project}/archive/${commit_or_branch}.tar.gz"


wget -O - ${archive_url} | tar xz --strip=1 "${git_project}-${commit_or_branch}/${dir_or_file}"

tar.gz的形式下载归档文件的优势在于,您可以直接将 Wget导入 沥青命令,这样就可以使用 在飞行中提取 GZ