✅ Git 저장소에서 특정 폴더만 클론하는 방법 (Sparse Checkout 완벽 가이드)
🎯 목표
원격 Git 저장소에서 전체 파일을 받지 않고, 특정 하위 폴더만 선택적으로 가져오는 방법입니다.
Git의 sparse checkout
기능을 활용하면, 디스크 공간과 시간 낭비 없이 원하는 부분만 효율적으로 작업할 수 있습니다.
🛠 단계별 사용 방법
1. 작업 디렉토리 생성
mkdir 원하는_작업_폴더
cd 원하는_작업_폴더
2. Git 저장소 초기화 및 원격 연결
git init
git remote add -f origin <원격_저장소_URL>
3. Sparse Checkout 기능 활성화
git config core.sparseCheckout true
4. 가져올 폴더 경로 지정
echo "원하는/폴더/경로1/" >> .git/info/sparse-checkout
echo "원하는/폴더/경로2/" >> .git/info/sparse-checkout
>>
는 기존 내용을 유지하면서 한 줄씩 추가하는 명령어입니다.- 경로는 반드시 저장소 기준 상대 경로로, 폴더명 끝에 슬래시
/
를 포함해야 합니다.
5. 폴더 가져오기
git pull origin <브랜치명>
🔍 예시: 두 개의 폴더만 가져오기
mkdir my-sparse-project
cd my-sparse-project
git init
git remote add -f origin https://github.com/사용자명/저장소명.git
git config core.sparseCheckout true
echo "src/client/" >> .git/info/sparse-checkout
echo "docs/" >> .git/info/sparse-checkout
git pull origin main
📂 디렉토리 구조 이해
my-sparse-project/
├── .git/
│ └── info/
│ └── sparse-checkout # 가져올 폴더 경로를 나열한 설정 파일
├── src/
│ └── client/ # 실제 가져온 폴더
├── docs/ # 실제 가져온 폴더
.git/info/sparse-checkout
파일 예시 내용:
src/client/
docs/
⚠️ 주의사항
항목 | 설명 |
---|---|
경로 형식 | 저장소 기준 상대 경로 사용, 끝에 슬래시 / 필수 |
브랜치명 | main , master , 또는 실제 사용하는 브랜치 이름 사용 |
여러 경로 | .git/info/sparse-checkout 파일에 한 줄씩 추가 작성 (>> 또는 직접 편집) |
Git 버전 | Git 2.25 이상부터 지원됨 (이전 버전은 sparse-checkout 사용 불가) |
💡 참고: echo
대신 직접 편집도 가능
nano .git/info/sparse-checkout
또는
vi .git/info/sparse-checkout
에서 여러 경로를 직접 입력해도 됩니다.
📚 관련 용어 정리
용어 | 설명 |
---|---|
sparse checkout |
전체가 아닌 일부 파일/폴더만 checkout하는 Git 기능 |
.git/info/sparse-checkout |
가져올 폴더 경로들을 지정하는 파일 |
>> |
파일에 한 줄씩 덧붙이는 리디렉션 연산자 |
pull |
원격 저장소로부터 지정된 커밋(폴더들 포함)을 가져오는 명령 |
'git' 카테고리의 다른 글
[Git] Git에서 강제로 Pull 하기 (`로컬 변경사항 무시하고 원격 상태로 덮어쓰기`) (0) | 2025.04.10 |
---|---|
[Git] Git 2.25 이상: `git sparse-checkout set`을 이용한 특정 폴더 클론 방법 (0) | 2025.04.10 |
[Git] Git에서 일부 폴더만 작업 후 push 했을 때 생기는 문제와 안전한 대처법 (0) | 2025.04.10 |
[Git] git 특정 커밋 다운 (1) | 2024.05.08 |
[Git] git clone change directory name (1) | 2024.01.03 |
댓글