특정 커밋을 위해 GitHub에서 .zip을 다운로드하는 방법은 무엇입니까?


106

github에서 호스팅되는 라이브러리의 소스가 포함 된 .zip을 다운로드하고 싶지만 마스터는 원하지 않습니다. 다운로드 할 때마다 다른 버전을 다운로드 할 수 있기 때문입니다.

이 특정 라이브러리에는 태그가 없어서 사용할 수 없습니다.

그렇다면 특정 커밋 샤에 대한 source.zip을 어떻게 다운로드합니까?


3
이것은 php 또는 composer-php로 태그를 지정할 필요가 없습니다.
Cacovsky

답변:


218

다운로드 URL에 원하는 sha를 넣을 수 있습니다.

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

일반적으로 작동하는 URL이있는 경우 "master"를 원하는 특정 sha로 바꿀 수 있습니다.

유닉스에서 :

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

이것이 개인 저장소 인 경우 OAuth 토큰도 전달하지 않으면 wget이 작동하지 않습니다.

이에 대한 자세한 정보는 다음과 같습니다.

Private Repo에서 Git 아카이브 tarball을 다운로드하는 데 문제가 있습니다.


7
그 (멋진) 방법을 기대하지 않았습니다. git 명령을 기대하고있었습니다;)
HenchHacker

이 링크도 확인하십시오-대신 이것을 찾을 수 있습니다 stackoverflow.com/a/48503019/341117
Ravindra Gullapalli

짧은 샤도 사용할 수 있습니다!
wjandrea

wget -O아카이브 ZIP 파일의 이름을 바꾸는 데 사용하더라도 압축을 풀면 큰 못생긴 SHA1 디렉토리 이름이 생깁니다. 이것을 피할 방법이 있습니까?
QED

40

커밋 코드를 볼 때 오른쪽 상단의 "코드 찾아보기"버튼을 클릭 한 다음 "ZIP 다운로드"를 클릭합니다.


1
이제 '복제 또는 다운로드'버튼이 있으며 여기서 'ZIP 다운로드'를 할 수 있습니다.
SureshS

"복제 또는 다운로드"는 이전 "복제"및 "다운로드"단추를 대체하는 새로운 단추입니다. 새 버튼은 특정 버전을 수행하지 않습니다. Zeki가 설명하는 방식을 사용합니다.
pal

3
이것은 2017 년 2 월에 저에게 효과적이었습니다. 선택한 커밋의 타임 스탬프에 변경 사항이있는 저장소를 다운로드했습니다.
ocean4dream

7

이것은 오래된 질문이지만 커밋 당시의 전체 저장소가 아니라 커밋만을 패치로 원한다면 다음을 사용할 수 있다고 언급하고 싶었습니다.

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

그만큼 /commit.patch 부분은 중요한 부분이되고.

이것은 한동안 되 돌린 변경 사항을 병합하려는 경우 특히 유용하므로 분기 된 저장소에 존재하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.