git을 사용하여 최신 개정판 가져 오기


380

git을 사용하는 프로젝트를 추적하고 싶습니다. 전체 리포지토리와 전체 기록을 복제하고 싶지 않고 최신 버전 만 원하며 원격 프로젝트에서 새 버전으로 업데이트하고 싶습니다.

git clone을 사용해 보았지만 전체 리포지토리 (거대한 파일 크기)의 복사본을 만들고 변경 사항을 추적하면 디스크 공간이 훨씬 커집니다 (100MB의 파일은 이제 2GB 이상을 차지합니다).

패치를 제출하지 않을 것이므로 이력이 필요하지 않습니다. 나는 단지 subversion과 같은 최신 버전을 원합니다.

자식에서 가능합니까?


2
망할 놈의 1.9 / 2.0 (Q1 2014) 훨씬 더 효율적 얕은 복제를 할 것이다 : stackoverflow.com/a/21217267/6309stackoverflow.com/a/21217326/6309
VonC

답변:


552

다음의 --depth옵션을 사용하십시오 git clone.

지정된 커밋 수만큼 잘라낸 기록 으로 얕은 복제본을 만듭니다 .

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


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

14
자식 1.9에서 커밋 82fba2b 이후 이러한 제한은 더 이상 존재하지 않습니다.
niutech

1
어떤 제한이 있습니까?
무지

4
@Triangles : 제한 사항 (더 이상 최신 상태가 아님) : 얕은 저장소에는 여러 가지 제한 사항이 있지만 (복제하거나 가져올 수 없으며, 밀어 넣거나 넣을 수 없음) 최근의 대형 역사에만 관심이있는 경우 적합합니다 오랜 역사를 가진 프로젝트이며 수정 사항을 패치로 보내려고합니다.
odinho-Velmont


79

얕은 복제 ( git clone --depth=1 <URL>) 를 수행하는 다른 솔루션은 원격 측에서 지원하는 경우 --remote옵션 을 사용하는 것입니다. git archive.

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

또는 gitweb 또는 GitHub와 같은 일부 웹 인터페이스를 사용하여 문제의 원격 저장소를 탐색 할 수 있는 경우 '스냅 샷'기능이있을 가능성이 있으며 웹 인터페이스에서 최신 버전 (버전 정보없이)을 다운로드 할 수 있습니다.


4
이 솔루션은 "원격 프로젝트에서 새 개정으로 업데이트 할 수 있기를 원합니다"라는이 요구 사항을 충족시키지 않습니다. 기본적으로 아카이브를 다운로드하기 때문에 커밋을 빠르게 진행할 수 없습니다. "Shallow clone"이 가능합니다. 여전히이 솔루션에는 사용 사례가 있으므로 언급 할 가치가 있다고 생각합니다.
VasiliNovikov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.