[Github] 특정 폴더만 clone 받기 본문

Github

[Github] 특정 폴더만 clone 받기

최재강 2021. 9. 27. 13:51

깃허브를 이용하다 보면 특정 폴더만 pull 혹은 clone해오고 싶은 경우가 많다.
가져오고 싶은 프로젝트가 거대할 수록 굳이 필요없는 파일들 까지 받아오는 것은 비효율적이기 때문이다.

따라서 특정 폴더만 clone해 오는 방법을 소개한다.

클론 받을 폴더 생성

mkdir "폴더 이름"
cd "폴더 이름"

폴더를 생성하고 해당 폴더로 이동한다.

Sparse Checkout 기능 활성화

git config core.sparseCheckout true

git remote 추가

git remote add -f origin <remote url>

만약에 clone 받을 폴더에 이미 git remote가 있다면

git init

git init 명령어를 통해 독자적인 git remote를 생성하도록 한다.

checkout 하기

echo <가져올 repository의 폴더 경로> >> .git/info/sparse-checkout

여기서 가져올 repository의 폴더 경로라는 것은, 만약 test라는 repository의 test1이라는 폴더를 가져오고 싶다면, test1/ 을 적으면 되는 것이다. 아까 로컬에서 생성한 폴더이름과는 다를 수 있다.

pull 받기

git pull origin master
or
git pull origin main

그 후 pull 명령어를 실행하면 정상적으로 해당 폴더만 받아와질 것이다. 요즘에는 깃허브의 기본 메인 브렌치가 master가 아닌 main으로 생성되는 경우가 있다. 따라서 해당 깃허브의 기본 메인 브렌치가 무엇인지 파악하고 pull명령어를 입력하자.

또한 아까 해당 폴더에 git init 명령어를 입력했다면,

rm -rf ./git

해당 명령어를 통해 다시 원래 git remote로 바꾸어주어야 문제가 없을 것이다.

참조

Comments