2009-07-30 2 views
263

git을 사용하는 프로젝트를 추적하고 싶습니다. 전체 저장소와 전체 내역을 복제하고 싶지는 않습니다. 최신 개정판을 원하며 원격 프로젝트에서 새 개정판으로 업데이트 할 수 있기를 원합니다.git을 사용하여 최신 개정판 만 가져 오기

나는 git clone을 사용해 보았지만 전체 저장소 (거대한 파일 크기)의 사본을 생성하고 추적 변경으로 인해 디스크 공간이 훨씬 커졌습니다 (100MB의 파일이 2GB 이상을 차지함).

나는 패치를 제출하지 않을 것이고, 나는 역사를 필요로하지 않는다. 난 그냥 전복과 같은 최신 버전을 원한다.

git에서 가능합니까?

+2

얕은 복제를 사용할 경우 1.9/2.0 (Q1 2014)이 훨씬 더 효율적입니다. http://stackoverflow.com/a/21217267/6309 및 http://stackoverflow.com/a/21217326/6309 – VonC

답변

373

git clone에서 --depth 옵션을 사용하여 역사를 커밋 지정된 수의 잘립니다와

얕은 클론을 생성합니다.

예 : git clone --depth=1 <remote_repo_url>

원격 측 git archive--remote 옵션을 사용하도록 지원하는 경우 얕은 복제를 수행하는
+68

예 : 'git clone --depth = 1 ' – iDev247

+13

[commit 82fba2b] (https://github.com/git/git/commit/82fba2b9d39163a0c9b7a3a2f35964cbc039e1a)이이 제한 사항은 더 이상 존재하지 않습니다. – niutech

+1

HTTP 전송에서는 작동하지 않습니다. – Charles

64

대체 솔루션 (git clone --depth=1 <URL>)는 다음과 같습니다

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf - 

을 또는 원격 저장소 경우 해당 웹 사이트과 같은 gitweb 또는 GitHub를 사용하여 찾아 볼 수 있습니다. 그러면 '스냅 샷'기능이있는 기회가 생기며 최신 버전을 다운로드 할 수 있습니다. 아웃 버전 정보)를 웹 인터페이스에서 가져올 수 있습니다.

+1

이 솔루션은이 요구 사항을 충족시키지 못합니다. "원격 프로젝트에서 새 개정판으로 업데이트 할 수 있기를 원합니다". 기본적으로 아카이브를 다운로드하기 때문에 커밋 또는 2를 빨리 진행할 수 없습니다. "얕은 복제"는 허용합니다. 그래도이 솔루션에는 유즈 케이스가 있으므로 가치가 있다고 생각합니다. – VasyaNovikov

관련 문제