我想下载一个.zip,其中包含github上托管的库的源代码,但我不想要master,因为每次下载我都可以下载不同的版本。
这个特定的库没有标签,所以我不能使用它。
那么如何为特定的提交sha下载source.zip?
答案 0 :(得分:197)
您可以将所需的sha放入下载URL:
https://github.com/{username}/{projectname}/archive/{sha}.zip
作为一般规则,如果你有一个有效的网址,你可以用你想要的特定sha替换“master”。
答案 1 :(得分:38)
查看提交代码时,单击右上角的“浏览代码”按钮,然后单击“下载ZIP”。
答案 2 :(得分:5)
这是一个老问题,但是想提一下,如果你只想提交作为补丁,而不是提交时的整个回购,你可以使用:
$ wget http://github.com/username/repo/commit/sha1.patch
# ^^^^^^^^ ^^^^ ^^^^
# change change change
/commit
和.patch
部分是重要的部分。
如果你想合并一段时间内被逆转的变化,这在分叉的回购中不存在时,这一点特别有用。
答案 3 :(得分:0)
对于那些来这里寻求从特定提交(或分支)下载特定文件(或目录)的方式的人:
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 传递到 tar 命令中,这样它将提取gz即时。