Git 얕은 복제본을 전체 복제본으로 변환하는 방법?


답변:


93

편집 : git fetch --unshallow 이제 옵션입니다 (Jack O'Connor에게 감사드립니다).

실행할 수 있습니다 git fetch --depth=1000000(저장소에 백만 개 미만의 커밋이 있다고 가정).


238
이제는 git fetch --unshallow@sdram의 답변과 같이 존재하지만이 답변은 더 이상 최고의 답변이 아닙니다.
잭 오코너

1
@ sdram의 답변이 저에게 효과가 없었습니다 (git 버전 2.1.1).
kay-SE는 악이다.

2
대답도 저에게 효과적이지 않았습니다. 두 명령은 모든 누락 된 커밋을 가져 오는 데 성공하지만 새로운 커밋을 추진하려고 할 때, 나는 서버가 '얕은'심판에 대해 모르는에 대한 오류를 얻을 수
Tyguy7

3
git fetch --depth=2147483647명령에 제공 할 수있는 가장 큰 깊이입니다.
clacke

5
나는을 사용 git fetch --unshallow했지만 여전히 모든 가지를 보여주지는 않습니다.
Sid

674

아래 명령 (git 버전 1.8.3) 은 얕은 복제본을 일반 복제본으로 변환합니다.

git fetch --unshallow

그런 다음 원점의 모든 분기에 액세스하려면 (댓글에 @Peter에게 감사드립니다)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

36
이것은-단일 브랜치 부작용을 취소하지 않습니다. 그렇게하려면 .git / config를 편집하고 페치 = + refs / heads / BRANCHNAME : refs / remotes / origin / BRANCHNAME을 페치 = + refs / heads / * : refs / remotes / origin / *
Peter Cordes

3
이것은 원격 브랜치를 추적하는 로컬 브랜치를 생성하지 않으므로 설정을 얻으려면 여전히 -b BRNAME origin / BRNAME을 체크 아웃해야합니다.
Peter Cordes

26
참조 stackoverflow.com/questions/17714159/... : git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"; git fetch origin 답변에서 editting에 .git / config에 손과 같은이 있어야한다
피터 코르

레포가 얕은 것으로 표시된 경우에만 작동합니다. 어떻게 기억이 나지 않지만 얕은 복제본을 명시 적으로 수행하지 않고 불완전한 저장소로 끝나는 상황이 있습니다. @svick의 stackoverflow.com/a/6802238/260122 는 매번 작동하는 답변입니다.
clacke

git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'나를 위해 일했다
gzaripov

19

특정 커밋까지만 레포를 심화시켜야했습니다.

을 읽은 후 man git-fetch커밋을 지정할 수는 없지만 날짜를 지정할 수 있음을 알았습니다.

git fetch --shallow-since=15/11/2012

점진적 심화가 필요한 사람들을 위해 또 다른 man인용문 :

--deepen=<depth>

--depth와 유사하지만 각 원격 분기 히스토리의 팁 대신 현재 얕은 경계에서 커밋 수를 지정합니다.


1

당신은 이것을 시도 할 수 있습니다 :

git fetch --update-shallow

0

위의 메시지 중 어느 것도 트릭을 수행하지 않았습니다. 얕은 클론에서 시작하는 git 태그로 작업하려고합니다.

먼저 나는 시도했다

git fetch --update-shallow

반쯤 일한 종류 그러나 태그를 사용할 수 없습니다!

git fetch --depth=1000000

이 마지막 명령은 실제로 태그를 가져 왔고 마침내 실행할 수있었습니다.

git checkout -b master-v1.1.0 tags/v1.1.0

그리고 그것으로 끝납니다.

HTH

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.