GitHub에서 호스팅되는 원격 Git 저장소에서 특정 폴더 또는 디렉토리 만 다운로드하려면 어떻게해야합니까?
GitHub 저장소의 예제가 여기에 있다고 가정 해보십시오.
git@github.com:foobar/Test.git
디렉토리 구조 :
Test/
├── foo/
│ ├── a.py
│ └── b.py
└── bar/
├── c.py
└── d.py
foo 폴더 만 다운로드 하고 전체 테스트 프로젝트를 복제하지 않습니다.
답변
2016 년 9 월 업데이트 : 커뮤니티에서 생성 한 몇 가지 도구가 있습니다.
Git은 이것을 지원하지 않지만 Github는 SVN을 통해 지원합니다. Subversion으로 코드를 체크 아웃하면 Github은 기본적으로 repo를 백엔드의 git에서 subversion으로 변환 한 다음 요청 된 디렉토리를 제공합니다.
이 기능을 사용하여 특정 폴더를 다운로드하는 방법은 다음과 같습니다. 유명한 자바 스크립트 라이브러리 lodash
를 예로 사용하겠습니다 .
-
subversion의 URL을 수정하십시오 . 교체
tree/master
와 함께trunk
.https://github.com/lodash/lodash/tree/master/test
➜https://github.com/lodash/lodash/trunk/test
-
폴더를 다운로드하십시오 . 커맨드 라인으로 가서 SVN으로 폴더를 가져옵니다.
svn checkout https://github.com/lodash/lodash/trunk/test
Github에서 더 큰 리포지토리를 변환하는 데 최대 30 초가 걸리므로 활동이 즉시 나타나지 않을 수 있으므로 인내심을 가지십시오.
전체 URL 형식 설명 :
master
지점에 관심이 있다면trunk
대신 사용하십시오. 전체 경로는trunk/foldername
foo
지점에 관심이 있다면branches/foo
대신 사용하십시오. 전체 경로는 다음과 같습니다branches/foo/foldername
- 팁 :
svn ls
원하는 경우 다운로드하기 전에 사용 가능한 태그 및 분기를 보는 데 사용할 수 있습니다
그게 다야! Github 는 변경 사항 커밋 및 푸시 지원을 포함하여 더 많은 하위 버전 기능 도 지원합니다.
답변
이 기능에 대한 두 가지 옵션 :
옵션 1 : GitZip 브라우저 확장
용법:
- 모든 GitHub repos 페이지에서.
- 필요한 항목의 빈 부분을 두 번 클릭하십시오.
- 오른쪽 하단에서 다운로드 버튼을 클릭하십시오.
- 진행 대시 보드를보고 브라우저 트리거 다운로드를 기다리십시오.
- ZIP 파일을 가져옵니다.
토큰 받기 :
- 브라우저에서 GitZip Extension 아이콘을 클릭하십시오.
- “Get Token”옆의 “Normal”또는 “Private”링크를 클릭하십시오.
- Github 인증 페이지에서 GitZip 권한을 승인하십시오.
- 처음의 저장소 페이지로 돌아갑니다.
- 계속 사용하십시오.
옵션 2 : Github gh-page
GitHub API 및 FileZaver.js 라이브러리 인 JSZip을 사용하는 http://kinolien.github.io/gitzip
1 단계 : 오른쪽 상단의 필드에 github url을 입력하십시오.
2 단계 : 다운로드 압축을 위해 Enter 키를 누르거나 다운로드를 클릭하거나 하위 폴더 및 파일 목록을 보려면 검색을 클릭하십시오.
3 단계 : “zip 파일 다운로드”또는 “파일 가져 오기”버튼을 클릭하여 파일을 가져옵니다.
대부분의 경우 Github Trees API 제한으로 인해 폴더에 1,000 개가 넘는 파일이 포함되어있는 것을 제외하고는 정상적으로 작동합니다. ( Github API # Contents 참조 )
또한 GitHub 계정이 있고이 사이트에서 “get token”링크를 사용하는 경우 개인 / 공개 저장소를 지원하고 속도 제한을 업그레이드 할 수 있습니다.
답변
DownGit > URL 입력> 다운로드로 이동 하십시오!
이제 GitHub 공용 디렉토리 또는 DownGit 에서 파일 ( 특히 큰 파일 )에 대해 직접 다운로드 하거나 다운로드 링크 를 만들 수 있습니다 ! 다음은 간단한 데모입니다.
답변
이있는 경우 다음 을 수행 svn
하는 svn export
데 사용할 수 있습니다 .
svn export https://github.com/foobar/Test.git/trunk/foo
URL 형식을 확인하십시오.
- 기본 URL은
https://github.com/
/trunk
끝에 추가
를 실행하기 전에 먼저 다음 svn export
을 사용하여 디렉토리의 내용을 확인하는 것이 좋습니다.
svn ls https://github.com/foobar/Test.git/trunk/foo
답변
일반 자식 리포지토리 :
기록을 사용하여 리포지토리를 복제하지 않고 파일을 다운로드하려면이 작업을 수행 할 수 있습니다 git-archive
.
git-archive
git 저장소의 압축 된 zip 또는 tar 아카이브를 만듭니다. 그것을 특별하게 만드는 것들 :
- git 저장소에서 아카이브 할 파일 또는 디렉토리를 선택할 수 있습니다.
.git/
폴더 또는 폴더가 실행되는 저장소에 추적 되지 않은 파일 이나 폴더를 보관하지 않습니다 .- 특정 브랜치, 태그 또는 커밋을 보관할 수 있습니다. git으로 관리되는 프로젝트는 종종 이것을 사용하여 사용자가 다운로드 할 수있는 프로젝트 버전 (베타, 릴리스, 2.0 등)의 아카이브를 생성합니다.
docs/usage
ssh와 연결된 원격 저장소에서 디렉토리 의 아카이브를 작성하는 예 :
# in terminal
$ git archive --format tar --remote ssh://server.org/path/to/git HEAD docs/usage > /tmp/usage_docs.tar
이 블로그 게시물 및 git 문서에 대한 추가 정보 .
GitHub Repos에 대한 참고 사항 :
답변
GitHubFolderDownloader 라는 오픈 소스 프로젝트를 만들었습니다 . 전체 리포지토리를 복제하거나 다운로드하지 않고도 리포지토리의 단일 폴더를 다운로드 할 수 있습니다.
답변
다른 답변에는 아무런 문제가 없지만 처음 으로이 과정을 방황하는 사람들을 위해 단계별 지침을 공유한다고 생각했습니다.
github 저장소에서 단일 폴더를 다운로드하는 방법 (Mac OS X) :
~ 터미널을 열려면 스포트라이트를 클릭하고 터미널을 입력 한 다음 Enter 키를 누르십시오.
- Mac에서는 이미 SVN이있을 수 있습니다 (단지 열린 터미널을 테스트하고 “svn” 또는 “which svn” ~ 따옴표없이 입력).
- Github에서 : 리포지토리 내 특정 폴더 이름을 클릭하여 리포지토리가 아닌 git 폴더의 Github 경로를 찾으십시오.
- 브라우저의 주소 표시 줄에서 경로를 복사하십시오.
- 터미널을 열고 다음 을 입력하십시오. svn export
- 다음 주소에 붙여 넣기 (예 :
https://github.com/mingsai/Sample-Code/tree/master/HeadsUpUI - 단어를 교체하십시오 : tree / master
- 단어와 함께 : 트렁크
- 파일의 대상 폴더를 입력하십시오 (이 예에서는 대상 폴더를 현재 사용자의 다운로드 폴더 안에 저장합니다)
- 여기서 space는 단어가 아닌 스페이스 바입니다 (space) ~ / Downloads / HeadsUpUI
- 마지막 터미널 명령은 폴더를 다운로드하는 전체 명령을 보여줍니다 (5 단계와 주소 비교) svn export
https://github.com/mingsai/Sample-Code/trunk/HeadsUpUI
~ / Downloads / HeadsUpUI
BTW-Windows 또는 다른 플랫폼에있는 경우 http://subversion.apache.org 에서 subversion (svn)의 바이너리 다운로드를 찾을 수 있습니다 .
~ 단순히 다운로드하는 대신 폴더를 체크 아웃하려면 svn help를 사용하십시오 (tldr : export 를 checkout 대체 )
최신 정보
중단 된 다운로드 / 체크 아웃 재개에 대한 의견과 관련하여. 나는 실행하려고 할 것이다 svn cleanup
다음 svn update
. 추가 옵션을 보려면 SO를 검색하십시오.