2016-09-12 4 views
2

내 문제는 repo의 얕은 복제를 만든 후 원격 git repo에서 새로운 커밋을 보는 것입니다.이 새로운 특정 커밋을 연속적으로 다운로드하려면 거대한 히스토리 테일없이 커밋해야합니다.원격 git repo에 새로운 커밋을보아야합니다.

+0

'git clone --depth n'을 가끔씩 만듭니 까? 그러면 처음 얕은 복제본에서 diff를 얻을 수 있습니다. – learnvst

+0

이 아이디어를 시도하고 git이 400 만 개가 넘는 객체를 다운로드하기 시작했습니다. – Grigoriy

+0

끌기를하면 이전에 계산 된 모든 객체 (4 백만 이상)가 다운로드됩니다. – Grigoriy

답변

0

git fetch --depth = depthValue를 수행 한 다음 git log를 사용할 수 있습니다.

+1

도이 방법을 사용합니다. 깊이를 너무 낮게 선택하면 나중에 원격/마스터와 로컬 마스터간에 커밋을 건너 뛰기 때문에 병합에 어려움이 발생합니다 그래서 원격 복제본에 대한 새로운 커밋의 수를 간결하게 알고 있기 때문에 간결한 복제본을 간결하게 다운로드하려면 – Grigoriy

0

당신은

git fetch

원격 심판을 얻기 위해 할 수있는 다음

git log HEAD..remote/branch

는 새로운 리모콘의 커밋 볼 수 있습니다.

+1

또는'git remote update' 만 다운로드하면됩니다. 하지만 여기서 문제는'git fetch'를 실행하면 모든 원격 객체를 다운로드한다는 것인데, 이것은 정확히 당신이 얕은 복제본에서 원하는 것을 원하지 않습니다. – MayeulC

0

--single-branch 옵션을 사용하면 복제를 단일 분기로만 제한 할 수 있습니다. 이렇게하면 다른 모든 브랜치를 건너 뛰기 때문에 로컬 git 복제본의 크기가 훨씬 작아집니다. 물론, 당신은 당신의 지역의 repo를 업데이트 할 수

git fetch 
git log HEAD..remote/mybranch 

을 그리고 :

git clone -b mybranch --single-branch git://domain.com/repo.git 

나중에 원격의 repo에 존재하는 모든 새로운 커밋을 나열하려면 다음 명령을 사용할 수 있지만 해당 지역에 수 일반적으로 리모컨에서 모든 커밋을 꺼내는 것 같이 :

git pull 
관련 문제