Programming/Git

Git에서 SVN처럼 특정 폴더만 pull하는 방법

이프로그 2021. 5. 22. 18:25
728x90
반응형

 

SVN의 경우 특정 폴더만 가져온 뒤 수정 후 commit이 가능합니다.

 

git에서도 커맨드를 이용하여 특정 폴더만 pull할 수 있습니다.

 

먼저 github 또는 gitlab에 저장된 저장소의 폴더구조를 알아야 합니다.

예를 들어

project 폴더
|-- doc 폴더
|-- src 폴더
  |-- web 폴더
  |-- android 폴더

의 구조로 있는 경우 web 폴더만 가져오고 싶은 경우가 있을 수 있습니다.

 

1. 클론 받을 폴더 생성

-> git init

2. 해당 폴더에 Sparse Checkout 기능 활성화

-> git config core.sparseCheckout true

3. remote 추가('{, }' 제거)

-> git remote add -f origin <remote url>

4. checkout 하기 원하는 파일 또는 폴더 정의('{, }' 제거)

-> echo "{src/web/}" >> .git/info/sparse-checkout

5. pull 요청

-> git pull origin master

 

이렇게 하면 해당 폴더의 영역만 가져올 수 있습니다. 하지만 애초에 저장소의 크기가 너무 큰 경우 git init을 하면 숨겨진 .git에는 지금까지 저장된 히스토리가 있기 때문에 과도한 용량을 차지하게 됩니다.

 

이왕이면 git의 경우는 프로젝트 별로 저장소를 분리하는게 이력관리와 소스관리에 더 유용한 것 같습니다.

 

 

 

 

728x90
반응형