`git :`url을`http :`url로 변환하는 방법


139

http 프록시 뒤에서 일하고 있습니다. "리포"도구를 사용하여 Android 소스 트리를 복제하려고합니다.

이 도구는 URL이 작동 git://하더라도 http://URL 사용을 주장 합니다. 결과적으로 소스를 다운로드 할 수 없습니다.

git항상 사용 하도록 강요 할 수 http있습니까?

편집 : 내 http_proxy가 올바르게 구성되었습니다. 예를 들어, 다음과 같이 작동합니다.

git clone http://android.git.kernel.org/platform/manifest.git

그러나 이것은 그렇지 않습니다 (errno = 연결 시간이 초과되었습니다).

git clone git://android.git.kernel.org/platform/manifest.git

따라서이 답변 은 실제로 도움 되지 않습니다.


이전 답변을 참조하십시오 .
John Paulett 2009

답변:


297

다음은 GitHub의 기본 프로토콜을 다시 작성하는 예입니다.

git config --global url.https://github.com/.insteadOf git://github.com/

Git 문서 url.<base>.insteadOf:

git config [--global] url.<base>.insteadOf <other_url>

이 값으로 시작하는 URL은 대신로 시작되도록 다시 작성됩니다 <base>. 지정된 URL과 일치하는 문자열이 둘 이상인 경우 가장 긴 일치가 사용됩니다.


19
방화벽이 git 프로토콜을 차단할 때 도움이됩니다! :)
Wojtek Turowicz 2016 년

여기에 질문을해도 되나요? 나는 이것을 사용하고 있었지만 "https"보다는 "heeps"를 썼다. 이 문제를 어떻게 해결할 수 있습니까? 'git config --global.url을 수행합니다. github.com/.insteadOf heeps : //github.com/ '작업?
Xuxu

1
팁 : git remote -v효과 insteadOfpushInsteadOf구성을 즉시 보여줍니다 .
Beni Cherniavsky-Paskin

이것은 22 포트가 차단 된 공용 WiFi에서 나를 위해 일했습니다. 구성을 기본값으로 되 돌리는 방법은 무엇입니까?
yivo

14
이 답변은 내 저장소가 git@github.com:...URL 형식을 사용하는 것을 제외하고는 거의 나를 위해 만들었습니다 . 이것은 효과 git config --global url."https://github.com/".insteadOf 'git@github.com:'가 있었다.
kraenhansen

35

repo 도구가 Git을 사용 하는 방법을 모르고 (http 프로토콜을 사용하도록 'repo'를 구성 할 수있는 경우) url.<base>.insteadOf구성 변수를 사용하여 트릭을 시도 할 수 있습니다 ( git-configgit-fetch 참조) 맨 페이지 참조).

core.gitProxy방화벽 프로토콜을 사용하는 데 문제가 있다면 방화벽을 통과하는 데 사용하려고 했습니까 ?


2
고맙게도이 "insteadOf"변수는 내가 필요한 것입니다.
noamtm 2016

23

자식 저장소에서 하위 모듈을 재귀 적으로 가져 오는 것과 동일한 문제가있었습니다. git 포트에서 나가는 연결을 허용하지 않는 미친 방화벽 뒤에 있습니다. 하위 모듈의 일부 하위 모듈은로 코딩되었습니다 git://github.com/blah/blah.git. 이로 인해 내 재귀 하위 모듈이 죽었습니다. 해결 방법은 다음과 같습니다.

git config --global url."https://<GITUSERNAME>@".insteadOf git://

이을 대체 git://https://<GITUSERNAME>@모든 서브 모듈 저장소 URL을한다. <GITUSERNAME>자신의 자식 사용자 이름 으로 바꿔야 합니다. 또한 --global필수입니다; 이 구성을 기본 리포지토리 디렉토리에 추가하면 작동하지 않습니다.


3
git config --global url을 사용하는 것만이 아닙니다. github.com/angular/angular-phonecat/issues/141 사용자 이름이 필수입니까?
Αλέκος 7

3

~/.gitconfighttps : //로 SSH를 덮어 쓰는지 여부를 확인할 수 있으며 그 반대도 마찬가지입니다.

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