Post

git 특정(일부) 리포지토리만 클론하기


방법

원격지 저장소 내 소스파일들 중 특정한 스크립트 디렉토리 (tools)만 클론하고 싶어 진행해보았다.

디렉토리를 생성한다

클론을 받을 디렉토리를 생성

1
mkdir ~/gitscript

내부에서 init 한다

1
2
cd ~/gitscript
git init

remote 를 추가한다

1
2
git remote add <repo url>
git remote add git@gitlab.test.com:group/project.git

sparse checkout 을 활성화한다

1
git config --local core.sparsecheckout true

clone할 폴더를 지정한다

나는 스크립트 디렉토리인 tools만 가져오고 싶어 tools/*로 지정하였다.

1
echo "tools/*" >> .git/info/sparse-checkout

원격지에서 pull한다

1
git pull origin master

결과

tools만 가져와졌다.

1
2
3
4
5
total 16K
drwxr-xr-x  4 root root 4.0K Nov 21 08:47 ./
drwxr-xr-x 27 root root 4.0K Nov 21 08:46 ../
drwxr-xr-x  8 root root 4.0K Nov 21 08:55 .git/
drwxr-xr-x  3 root root 4.0K Nov 21 08:47 tools/

명령어 정리

1
2
3
4
5
6
7
mkdir ~/gitscript
cd ~/gitscript
git init
git remotea add <repo url>
git config --local core.sparsecheckout true
echo "tools/*" >> .git/info/sparse-checkout
git pull origin master
This post is licensed under CC BY 4.0 by the author.