[Git] git 저장소의 하위 폴더 clone하기

BYJIYE·2020년 11월 17일
2

Git

목록 보기
1/1

git 저장소 안에 여러 프로젝트(폴더)들이 존재했을 때, 특정 프로젝트를 따로 clone 하고 싶을 때 사용되는 방법이다.

"git 특정 폴더만 clone" 이라고 구글에 검색해서 나오는 방법들이 대부분 다 똑같았다. 나와있는 방법으로 시도를 해봤지만 나만 안되는건가,, 의심을 품고 계속 검색하고 번역하고 찾아본 결과! 드디어 성공한 방법을 찾아서.. 여러분들의 시간은 소중하니까 공유하기 위해 올린다.

내가 찾았던 방법들은 이러하였다. (기본적으로 해당 디렉토리에 git 설치를 했다는 가정하게 진행된다.)_

1. sparse Checkout 기능 활성화
git config core.sparseCheckout true

2. clone하기 위한 git 저장소 연결
git remote add -f origin 저장소주소

3. clone 하기 위한 해당 폴더 Path 연결
echo "프로젝트 경로" >> .git/info/sparse-checkout
or
echo "프로젝트 경로" > .git/info/sparse-checkout

4. pull 명령어로 저장소에서 해당 폴더 파일 다운받기
git pull origin master

위 방법대로 해보았지만 나만 안된다. 다들 되는데 나만 안되는건가ㅠ,,ㅠ 별 것도 아닌거에 괜히 스트레스 받아서 이너피스 외치고 다시 구글링 시작,,

찾다가 외국 사이트에서 여러 사람들이 질의응답하는 것을 보고 시도해본 결과, 성공
긴말 않고 바로 방법 투척 💥

◼ git 저장소의 하위 폴더 clone 하기

다운로드 받을 디렉토리에서 커맨드 실행

1. git 설치
git init

2. git 저장소 연결
git remote add origin 저장소주소

3. git sparse checkout 활성화
git config core.sparsecheckout true

4. clone 하기 위한 폴더 경로 설정
echo 폴더경로/* >> .git/info/sparse-checkout

폴더 경로에 "" (큰따옴표)를 작성하면 pull이 작동하지 않습니다.

예를들어 typeScript라는 저장소에서 특정 typescript-typeorm 폴더의 src 폴더를 다운받고 싶으면, typescript-typeorm/src/* 이런식으로 작성해준다.

5. pull 명령어로 해당 폴더 다운받기
git pull origin master

커맨드를 실행한 해당 폴더를 열어보면 파일들이 다운받아져있다.
git remote -v로 git 저장소를 확인해보면 처음에 연결했던 저장소로 되어있고, 변경사항들을 commit 했을 때도 정상 작동한다.

profile
프론트엔드가 되기 위해 그냥 닥치는 대로 배우고 써보는 4년차 퍼블리셔

1개의 댓글

comment-user-thumbnail
2021년 5월 26일

복 받으세요 덕분에 살았습니다

답글 달기