2013-08-02 3 views
1

https://domain/path/project.git/HEAD을로드하려고하면 bitbucket과 github에서 404가 표시되고 git book (git-scm.com)에 따르면이 경우가 아닙니다.은 복제하지 않고 http를 통해 메타 데이터를 읽을 수 있습니다

이 두 사이트는 특별한 경우입니까? 아니면 잘못된 것입니까?

가능한 경우 전체 저장소를 다운로드하지 않으려합니다.

+0

정확하게 git 메타 데이터는 무엇을 의미합니까? – John

+0

주로 팁 마스터 분기 및 마지막 커밋 시간 스탬프에 대한 해시입니다. – seininn

답변

1

당신이하려는 것은 단순히 정적 파일을 사용했던 이전 Git HTTP 프로토콜을 사용한다고 가정합니다. Github와 Bitbucket은 활성 (프로그래밍 된) 서버가있는 Git의 최신 HTTP 프로토콜을 사용하므로 "HEAD"라는 URL이 없습니다.

따라서 스마트 클라이언트를 사용하여 최소한 통신해야합니다. 그러나 저장소를 복제해야한다고 말할 필요는 없습니다. 전체 복제를하지 않고도 서버와 대화 할 수있는 도구가있을 수 있습니다. 예를 들어, git ls-remote있다 :

$ git ls-remote http://server/git/project 
7f38468acf1de9b73d931aebf9a8add8f691a6dc  HEAD 
7f38468acf1de9b73d931aebf9a8add8f691a6dc  refs/heads/master 

은 자세한 내용은 git-http-backend의 맨 페이지를 참조하십시오.

+0

git ls-remote는 각 ref의 해시를 제공 할 수 있습니다. 직접 콘텐츠를 제공 할 수는 없습니다. – linquize

0

이이 Github API 수행 할 수 있습니다 (또한, 당신 "는 전체 저장소 다운로드"입니다 피하고 싶은 모든, 당신은 단순히 얕은 복제를 할 수있는 경우. 주목해야한다). 단순히 기본 인증 (필요한 경우)을 사용하여 GET을 /repos/:owner/:repo/commits으로 호출하고 JSON 응답을 구문 분석하십시오.

HTTP에 관한 질문을 이해했습니다 ... 이것은 단지 다른 방법 일뿐입니다. 나는 그렇지 않을 수도 있다고 생각하지 않는다.

관련 문제