2017-09-13 1 views
0

복제하지 않고 특정 커밋 해시 에서 자식 리포를 얻으려고합니다! 모든 예에서는 전체 Repo를 복제하려고합니다. 이것은 의미가 있지만 마음에 가지고있는 리포는 거대합니다.이 이미지는 고정 다리 이미지와 같이 작은 면적을 남겨두기 위해 필요합니다.복제하지 않고 특정 커밋에서 git repo 가져 오기

커밋 해시는 URL에 - 하나 wget 또는 curl이/재귀 적으로 페치 할 수 있지만, 나는 느낌 GitHub의 모든으로 내가 얻을 것을 차단해야한다 robots.txt

의 repo 및 커밋 :

https://github.com/phalcon/cphalcon/tree/1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e

최선 시도 오류 :

git fetch https://github.com/phalcon/cphalcon/ 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e 
error: Server does not allow request for unadvertised object 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e 

갱신

복제본을 사용하는 답변은 질문에 대답하지 않습니다. 나는 문제를 복제하거나 체크 아웃 할 수 없다. 전체 REPO를하지 않고 그것을 시도 로컬

+1

[특정 리비전/변경 집합을 사용하여 git 리포지토리를 복제하는 방법] (https://stackoverflow.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset)의 가능한 복제본 – jonrsharpe

+0

태그를 사용하십시오. – o11c

+0

이 옵션을 사용할 수 있습니다 (https://developer.github.com/v3/git/trees/).하지만 사용은 매우 어려우며 얕은 복제는 훨씬 쉽고 생산적입니다. – torek

답변

1

당신은 오류 메시지에 표시된 이유를 들어, Git 저장소가 필요합니다

error: Server does not allow request for unadvertised object ... 

에 "알려지지 않은 개체가"이름이없는 하나입니다 직접 부착되어 있습니다. (객체에 이름이 있다면 명명 된 객체를 요청할 수 있고 서버가 객체를 제공 할 것입니다. 여기서는 "blue 고양이를 허용하지 않습니다."와 같은 불만 사항은 "나는 다른 객체를 허용합니다. 고양이의 색깔 "이라고도 할 수 있지만 반드시 합리적이라고는 할 수 없습니다.) 즉, git fetch을 사용하여 간접적 인 방법으로 개체를 가져와야 함을 의미합니다.

필요한 저장소는 원래 저장소의 클론 또는 적어도 부분 클론입니다. 얕은 복제본을 사용할 수 있습니다.이 복제본은 불완전합니다. 정확히 어떤 깊이가 필요한지는 미리 계산할 수없는 것입니다. 전체 복제본을 가진 사람이 알아낼 수 있고, 복제본이 충분히 깊어지면 정확한 수를 찾을 수 있습니다. 그러나 복제본이 너무 얕 으면 복제본이 너무 얕다는 것을 알고 있습니다.

Git fetch a specific commit by hashgit shallow clone (clone --depth) misses remote branches도 참조하십시오. --single-branch을 원하거나 원하지 않을 수도 있습니다. 약간의 깊이로 복제하고 충분한지 확인하십시오. 충분하지 않을 경우 git fetch --depth <bigger-number>으로 깊이를 높이십시오.


1은 사실,이 논리는 문구 "규칙을 증명하는 예외"에 대한 진정한 기원으로 나타납니다이 casibus 비 exceptis에 라틴어 어구 Exceptio의 PROBAT의 regulam에서 온다. 자세한 내용은 https://pocketbookuk.com/tag/cicero/this answer on english.stackexchange.com을 참조하십시오.

관련 문제