Git | GitLab

[Git] sparsecheckout - 하위 디렉터리만 클론

비번변경 2023. 8. 21. 19:18

sparsecheckout

Git을 사용하다보면 레포지터리의 내용 전체가 아니라 일부 경로만 필요한 경우가 종종 있다. 이때 sparsecheckout 기능을 사용하면 필요한 경로만 관리할 수 있다. 비교적 최신 버전의 git에서 사용할 수 있다.

 

 

사용법

보통 신규 디렉터리를 만들어 git init 후 사용하는 것 같은데, 이 글에서는 checkout 없이 git을 클론 하여 사용해 본다.

예시로 사진의 Algorithm 레포지터리의 백준 디렉터리만 로컬 저장소고 가져와보자.

 

1. checkout 없이 클론

git clone -n <GIT_URL>

# 예시
git clone -n https://github.com/jinyuo/Algorithm.git

로컬 저장소에 git 설정 파일 경로만 있고 내용물은 없는 것을 확인할 수 있다.

 

2. sparsecheckout 활성화

sparsecheckout 기능을 사용하기 위해서는 별도로 활성화를 해야 한다.

cd <LOCAL_REPO>
git config core.sparsecheckout true

 

3. 로컬 저장소에서 관리할 디렉터리 지정

.git/info/sparse-checkout 이라는 설정 파일에 디렉터리를 기재한다. set 명령을 사용해도 된다.

git sparse-checkout set <DIR>

# 또는
echo '<DIR>' >> .git/info/sparse-checkout

 

sparse-checkout으로 받아올 디렉터리를 확인할 때는 list 명령을 사용한다.

git sparse-checkout list

 

 

4. 원격 저장소의 최신 버전으로 reset

git reset --hard origin/<branch>

원하던 디렉터리만 로컬 저장소로 추가된 것을 확인할 수 있다.

 

 

참고 문서

https://git-scm.com/docs/git-sparse-checkout

https://bitlog.tistory.com/131