[Git] git repository의 일부 디렉토리만 clone 하기 (git sparse checkout)

git repository의 일부 디렉토리만 clone 하기 (git sparse checkout) git clone some folders with git sparse checkout

서론

2022년 첫 포스팅

사내의 어떤 프로젝트 구조가 하나의 repository에 해당 프로젝트에 대한 모든 코드를 다 넣어두고 개발 스택별로 폴더를 나누어 구분하는 구조로 되어있어서 프론트 폴더만 clone 하기 위해 사용한 방법을 포스팅하려고 합니다.

(프로젝트 저장소)
ㄴ (프론트 폴더)
ㄴ (백엔드 폴더)
...

본론) git repository의 일부 디렉토리만 clone 하기

clone 받을 폴더를 만들고 git 초기화

image_01

mkdir test
cd test
git init

git remote에 clone 받을 repository 추가

image_02

git remote add origin [git repository 주소]

# 샘플) 블로그 repository 연결
# git remote add origin https://github.com/infiduk/infiduk.github.io.git

sparse checkout 사용 추가

image_03

git config core.sparsecheckout true

clone 할 폴더 지정

image_04

echo '폴더 경로/*' >> .git/info/sparse-checkout

# 샘플) 블로그 repository 의 test 폴더만 clone 받겠다.
# echo 'test/*' >> .git/info/sparse-checkout

지정한 폴더의 코드 pull

image_05

git pull origin master

remote origin의 지정한 폴더만 pull 된 것 확인

image_06

image_07

결론

기존에는 프로젝트 - 개발 스택 별로 다 repository 를 따로 나눠서 관리했었는데 이렇게 하면 한 곳에서 모든 코드를 관리할수 있어서 좋은 것 같네요. (개인적인 의견)

짧은 글 봐주셔서 감사합니다. 모두 해피코딩 되세요 :)

참고

이 글의 저작권은 Attribution-NonCommercial 4.0 International 라이센스를 따릅니다. Attribution-NonCommercial 4.0 International