개발관련/Git

GitHub 저장소에서 단일 폴더 또는 디렉토리 다운로드

Rateye 2021. 11. 30. 09:52
728x90
반응형
질문 : GitHub 저장소에서 단일 폴더 또는 디렉토리 다운로드

GitHub에서 호스팅되는 원격 Git 리포지토리에서 특정 폴더 또는 디렉터리 만 다운로드하려면 어떻게해야합니까?

여기에 GitHub 리포지토리가있는 예를 들어 보겠습니다.

git@github.com:foobar/Test.git

디렉토리 구조 :

Test/
├── foo/ 
│   ├── a.py
│   └── b.py   
└── bar/
    ├── c.py
        └── d.py
        

전체 테스트 프로젝트를 복제하지 않고 foo 폴더 만 다운로드하고 싶습니다.

답변

2021 년 4 월 업데이트 : 커뮤니티에서 만든 몇 가지 도구가 있습니다.

참고 : 많은 수의 파일을 다운로드하려는 경우 속도 제한을 피하기 위해 이러한 도구에 토큰을 제공해야 할 수 있습니다.

원래 (수동) 접근 방식 : 개별 디렉토리 체크 아웃은 git 기본적으로 지원되지 않지만 Github는 SVN을 통해이를 수행 할 수 있습니다. Subversion으로 코드를 체크 아웃하면 Github는 기본적으로 repo를 백엔드의 git에서 subversion으로 변환 한 다음 요청 된 디렉토리를 제공합니다.

이 기능을 사용하여 특정 폴더를 다운로드하는 방법은 다음과 같습니다. 인기있는 자바 스크립트 라이브러리 lodash 를 예로 사용하겠습니다.

  1. 다운로드 할 폴더로 이동합니다 . master 브랜치에서 /test 를 다운로드합시다. github repo URL 예제
  2. Subversion의 URL을 수정합니다 . tree/mastertrunk 바꿉니다. https://github.com/lodash/lodash/tree/master/testhttps://github.com/lodash/lodash/trunk/test
  3. 폴더를 다운로드합니다 . 명령 줄로 이동하여 SVN으로 폴더를 가져옵니다.

 

 

svn checkout https://github.com/lodash/lodash/trunk/test
        

Github는 더 큰 저장소를 변환하는 데 최대 30 초가 걸리므로 즉시 활동이 표시되지 않을 수 있으므로 인내심을 가지십시오.

전체 URL 형식 설명 :

  • master 브랜치에 관심이 있다면 trunk 사용하십시오. 따라서 전체 경로는 trunk/foldername
  • foo 브랜치에 관심이 있다면 branches/foo 사용하세요. 전체 경로는 branches/foo/foldername
  • Protip : 원하는 경우 svn ls 를 사용하여 다운로드하기 전에 사용 가능한 태그와 브랜치를 볼 수 있습니다.

그게 다야! Github는 변경 사항 커밋 및 푸시 지원을 포함하여 더 많은 하위 버전 기능도 지원합니다.

출처 : https://stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo
728x90
반응형