본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 25.1: Shallow Clone 하기
엄청나게 큰 저장소 (예를 들어 몇년에 걸친 역사를 가진 프로젝트 등) 를 clone 하는 작업은 전송해야 할 데이터가 많아 시간이 오래 걸리거나, 심지어는 중간에 실패하는 경우가 생기기도 한다. 해당 프로젝트의 history 전체가 필요한 경우가 아니라면, shallow clone 을 하는 것이 좋은 선택일 수 있다:
git clone [repo_url] --depth 1
위 명령어는 원격 저장소로부터 가장 마지막 커밋만을 fetch 해 올 것이다.
한가지 주의할 점은 shallow clone 한 저장소에서는 merge 에 대한 분석이 어려울 수 있다는 점이다. 따라서, merge 관련 분석에 필요한 만큼의 역추적을 위해 최소한의 커밋들은 clone 시에 포함시키는 것이 좋은 선택일 수 있다.
예를 들어, 최근 50 개의 커밋들만 clone 해오기 위해서는 아래와 같이 수행한다:
git clone [repo_url] --depth 50
이후 필요시, 해당 저장소의 전체 history 를 fetch 해올 수도 있다:
Version ≥ 1.8.3
git fetch --unshallow # git fetch -–depth=2147483647 와 동일한 효과를 갖는다
# 저장소의 남은 history 를 읽어온다
Version < 1.8.3
git fetch --depth=1000 # 최근 1000 개의 커밋을 fetch 해온다
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
25.3: 특정 브랜치 Clone 하기 (0) | 2019.12.24 |
---|---|
25.2: 일반적인 Clone 하기 (0) | 2019.12.23 |
24.13: Update hook (0) | 2019.12.20 |
24.12: Pre-receive hook (0) | 2019.12.20 |
24.11: Pre-rebase hook (0) | 2019.12.20 |