如何从GitHub下载特定提交的.zip?
我想下载一个.zip文件,其中包含github上托管的库的源代码,但我不想要master,因为每次下载时我都可能下载不同的版本 这个特定的库没有标记,所以我不能使用它如何从GitHub下载特定提交的.zip?,git,github,Git,Github,我想下载一个.zip文件,其中包含github上托管的库的源代码,但我不想要master,因为每次下载时我都可能下载不同的版本 这个特定的库没有标记,所以我不能使用它 那么如何下载特定提交sha的source.zip?您可以将所需的sha放入下载url: https://github.com/{username}/{projectname}/archive/{sha}.zip 一般来说,如果你有一个有效的url,你可以用你想要的特定sha替换“master” 在unix上: wgethttps:
那么如何下载特定提交sha的source.zip?您可以将所需的sha放入下载url:
https://github.com/{username}/{projectname}/archive/{sha}.zip
一般来说,如果你有一个有效的url,你可以用你想要的特定sha替换“master”
在unix上:
wgethttps://github.com/{username}/{projectname}/archive/{sha}.zip
请记住,如果这是一个私有回购,那么wget将不起作用,除非您也传递一个OAuth令牌
以下是关于这方面的更多信息:
查看提交代码时,单击右上角的“浏览代码”按钮,然后单击“下载ZIP” 这是一个老生常谈的问题,但我想提及的是,如果您只希望提交作为补丁,而不是提交时的整个回购,您可以使用:
$ wget http://github.com/username/repo/commit/sha1.patch
# ^^^^^^^^ ^^^^ ^^^^
# change change change
/commit
和.patch
部分是重要的部分
如果您想合并一个前一段时间被撤销的更改,因此在分叉回购中不存在,这一点尤其有用。对于那些来这里寻找从特定提交(或分支)下载特定文件(或目录)的方法的人来说:
将归档文件下载为
tar.gz
的好处是,您可以将wget直接导入tar命令,因此它将动态提取gz没有想到这样做(很酷)。应为git命令;)检查这个链接,以及-可能正在寻找这个代替你可以使用短sha太!即使我使用wget-O
来重命名存档ZIP文件,当解压缩时,我也会得到一个丑陋的大SHA1目录名。有没有办法避免这种情况?这不需要用php或composer php标记,是吗?他们现在有一个“克隆或下载”按钮,您可以在其中“下载ZIP”。“克隆或下载”是新按钮,它取代了旧的“克隆”和“下载”按钮。新按钮没有特定的版本-使用Zeki在2017年2月描述的方式。它确实下载了repo,并在所选commit.wasteful的时间戳处进行了更改。文件可以直接下载,子目录可以通过github的SVN界面下载,请参阅@MilaNautikus您使用SVN
的链接-需要先安装SVN,而wget
已经在大多数平台上可用。不要投反对票,而是发布一个有用的答案。
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}"