특정 커밋샤를 위해 GitHub에서 .zip을 다운로드하는 방법?
github에서 호스팅하는 라이브러리의 소스로 .zip을 다운로드하고 싶지만 다운로드할 때마다 다른 버전을 다운로드할 수 있기 때문에 마스터를 원하지 않습니다.
이 도서관은 태그가 없어서 사용할 수가 없습니다.
특정 커밋샤에 대해 source.zip을 다운로드하려면 어떻게 해야 합니까?
다운로드 url에 원하는 sha를 넣을 수 있습니다.
https://github.com/{username}/{projectname}/archive/{sha}.zip
일반적으로 작동하는 URL이 있는 경우 "마스터"를 원하는 특정 sha로 대체할 수 있습니다.
유닉스의 경우:
wget https://github.com/{username}/{projectname}/archive/{sha}.zip
이것이 개인 레포일 경우 OAuth 토큰을 전달하지 않으면 wget이 작동하지 않습니다.
이에 대한 자세한 정보는 다음과 같습니다.
Private Repo에서 Git 아카이브 타르볼을 다운로드하는 데 문제가 있음
커밋의 코드를 볼 때 오른쪽 상단에 있는 "코드 찾아보기" 버튼을 클릭한 후 "ZIP 다운로드"를 클릭합니다.
이것은 오래된 질문이지만, 커밋 당시 전체 레포가 아니라 단지 커밋을 패치로 원하는 경우 다음을 사용할 수 있습니다.
$ 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
, tar 명령에 직접 파이프를 넣을 수 있기 때문에 gz를 즉시 추출할 수 있습니다.
언급URL : https://stackoverflow.com/questions/13636559/how-to-download-zip-from-github-for-a-particular-commit-sha
'programing' 카테고리의 다른 글
공백을 무시하는 쿼리 (0) | 2023.10.15 |
---|---|
jQuery $.browser가 감가상각되었습니까? (0) | 2023.10.15 |
스프링부츠 + 스웨거 + 커스텀 스웨거 -ui.html (0) | 2023.10.15 |
javascript의 고유 (0) | 2023.10.15 |
콘솔에서 getc로 \r(캐리지 리턴) vs \n(새 줄) 읽기? (0) | 2023.10.15 |