2011-05-02 1 views
42

나는 포트 9418 (자식)을 차단하는 방화벽 뒤에있어 체크 아웃을 명시 적으로 수행하는 일부 도구를 설치하려고 시도하고 있으므로 git://github.com/...의 결제를 위해 https로 전환 할 수 없습니다. . git : // 프록시를 통해

그래서 나는 프록시를 통해 등 :

답변

20

core.gitproxy 설정을 Git config에서 확인하십시오. https://gist.github.com/49288

+1

흠, 흥미 롭습니다. 질문자는이 방법이 효과가 있다고 생각하면 의견을 말하면 좋겠습니까? – ijw

+0

나는 실제로이 정보에도 관심이있다. 내가 말했듯이 나는 결코 나 자신을 시도하지 않았다 :-) –

+0

나를 위해 일했다! 좋은 발견! – rkyser

2

당신은 ssh를 기반 TCP 터널를 시도하는 방법 경우 포트 9418에 대한 모든 트래픽을 리디렉션 할 수 있는지 궁금하네요? 당신이 (가) 당신의 방화벽 외부와 (b) IP 전송을 허용하는 SSH 서버가있는 경우, 당신은 할 수 있습니다 : 당신이 당신의 방화벽을 해결하기 위해 포트 443에서 SSHD를 실행해야하는 경우,

ssh -L localhost:9418:<remote>:9418 [email protected] 

또는, 로컬 그런

ssh -P 443 -L localhost:9418:<remote-host>:9418 [email protected] 

:

git checkout git://localhost/... 

은 분명히이 투명하지이며, 그것은 조금 복잡한입니다 - 더 구체적 문제에 타겟이되어 거기에 의심의 여지 도구가 없습니다. 그러나 나는 손으로 사용해야하는 도구 (ssh와 임대 한 가상 서버)를 사용하기 때문에 일반적으로이 방법을 사용합니다.

는 (사실은 자식의 연결이 시도 적이 있지만, 나는 그것이 작동하지 않을 이유가 없습니다. 나는 문제없이 많은 다른 단일 TCP 포트 프로토콜을 사용했습니다.)

+0

그래,하지만 내 통제 불능 뭔가 노력하고있다 :이 스크립트 git-proxy 이름을 지정하고 $PATH에서 읽을 수 있도록하면, 당신은 그것을 설정하는 git config를 호출 할 수 있습니다 'git clone git : //github.com/...'을 실행하면 URL을'localhost'로 변경할 수 없으므로 프록시를 수행 할 수 없습니다 –

+0

github.com을 임시로 구성 해보십시오. 127.0.0.1/etc/hosts –

65

당신이 자식 서브 모듈에 대해 이야기하는 경우,이 시도 :

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

.. -

빠른 인터넷 검색에 유용 할 수 있습니다 (나는 그것을 시도하지 않았거나하지 않을 수 있습니다)이 스크립트를 밝혀 .taken from here.

이렇게하면 프록시를 설정하거나 스크립트를 실행할 필요가 없습니다.

+4

고마워요, 저를 오후에 구해 냈습니다. – Patrick

+0

이것은 매우 우아한 접근 방식입니다. 아주 잘 작동하고 말도 안되는 프록시를 포함하지 않았습니다.나는 이전에 git : // URI를 변경할 수 있었지만 배포시 bundler를 다루는 것은 정말 악몽이되었습니다. 당신의 솔루션은 마술처럼 고통스럽지 않습니다. –

+0

이것은 http.proxy 및 https.proxy 설정을 설정 한 후에도 여전히 git : // url이 작동하지 않으면 저에게 효과적입니다. –

2

core.gitProxy은 SOCKS 프록시를 통해 원격 서버에 git를 연결하는 프록시 명령을 가리 키도록해야합니다. 당신은 프록시 명령로 사용하기 위해 다음과 같은 내용으로 스크립트를 생성 할 수 있습니다 : 원격 호스트와 포트를 나타내는

nc -x <your_proxy_host>:<your_proxy_port> $1 $2 

두 개의 매개 변수, 자식에 의해 프록시 명령에 전달됩니다. 내가 잘 작동 특정의 repo에 체크 아웃을 얻을 수

git config --global --add core.gitProxy git-proxy