[Git] 원격 저장소의 특정 폴더만 clone하기

오도원공육사·2021년 7월 30일
0

git

목록 보기
3/5

출처. https://www.lesstif.com/gitbook/git-clone-20776761.html

git clone을 하면 모든 폴더가 복제되지만 git 1.7부터 추가된 sparse checkout 기능을 사용하면 원하는 경로의 디렉터리나 파일만 복제할 수 있다.

현재 remote repo의 디렉토리 구조가 다음과 같다고 가정하자. 이때 sys-script와 하위 폴더, user-script/user1과 하위폴더만 필요해서 이것들만 복제하려고 한다.

git-test/
├── docs
├── script
│   ├── **sys-script**
│   │   └── **config**
│   └── user-script
│       └── **user1**
└── src
    ├── main
    │   └── java
    └── test
        └── kotlin

1. clone할 로컬 저장소를 만든다.

git init proj
cd proj

2. sparse checkout 기능을 활성화한다.

git config core.sparseCheckout true

3. remote를 추가한다.

-f 옵션은 --fetch와 동일한 옵션으로 remote를 연결함과 동시에 fetch를 통해 파일을 가져온다.

git remote add -f origin <REMOTE_URL>

4. checkout 하기 원하는 파일이나 폴더를 .git/info/sparse-checkout 파일에 기술한다. 디렉토리일 경우 하위 디렉토리가 포함된다.

echo "script/sys-script" >> .git/info/sparse-checkout
echo "script/user-script/user1" >> .git/info/sparse-checkout

5. pull로 fetch한 파일을 가져오면 sparse-checkout에 기술한 경로의 파일만 가져온다.

git pull origin master
profile
잘 먹고 잘살기

0개의 댓글