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>
원하던 디렉터리만 로컬 저장소로 추가된 것을 확인할 수 있다.