Profile picture

[Git] Git sparse checkout

JaehyoJJAng2022년 03월 10일

sparse checkout

  • git sparse checkout 기능은 Git 2.25.0 버전 이상부터 사용 가능

git sparse checkout을 설정하면 내가 원하는 디렉토리 및 파일들만 Working Directory로 가져와서 로컬 PC에 보이도록 할 수 있다.


사용 방법

a. 루트에 있는 main.py 파일만 가져올 경우

$ git sparse-checkout set /main.py

b. src/crawl.py 파일만 가져올 경우

$ git sparse-checkout set /src/crawl.py

c. src 디렉토리와 하위 전체 내용 가져올 경우

$ git sparse-checkout set /src/

d. 루트에 있는 main.py 파일과 src 디렉토리 전체를 가져올 경우

$ git sparse-checkout set /main.py /src/

예제

위 내용을 기반으로 쿠버네티스 모니터링 프로젝트에서 prometheus-2.44.0 과 loki-stack-2.6.1만 로컬 Working Directory로 가져오기 위해 아래처럼 설정을 해보자


0. monitoring 프로젝트 생성

$ git init ./monitoring
$ cd ./monitoring
$ git config --global init.defaultBranch main

1. 프로젝트 원격지 주소 설정

# 프로젝트 원격 주소 설정
$ git remote add -f origin https://github.com/k8s-1pro/install.git

2. sparse-checkout 설정

$ git config core.sparseCheckout true

3. ground/k8s-1.27/prometheus-2.44.0 파일만 가져올 수 있도록 .git/info/sparse-checkout 파일에 아래 내용 추가

$ echo "ground/k8s-1.27/prometheus-2.44.0" | tee .git/info/sparse-checkout
$ echo "ground/k8s-1.27/loki-stack-2.6.1"  | tee -a .git/info/sparse-checkout

4. 프로젝트 가져오기

$ git pull origin main

5. 디렉토리 확인하기

$ tree -L 3 .
.
`-- ground
    `-- k8s-1.27
        |-- loki-stack-2.6.1
        `-- prometheus-2.44.0

Loading script...