HTTP 프록시를 통해 Git 저장소에서 어떻게 가져 옵니까?
참고 : 설명 된 유스 케이스는 프로젝트 내에서 서브 모듈을 사용하는 것에 관한 것이지만 git clone
HTTP를 통한 일반적인 저장소의 경우 에도 마찬가지 입니다.
힘내 통제하에 프로젝트가 있습니다. 하위 모듈을 추가하고 싶습니다.
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
그러나 나는 얻는다
...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'
HTTP_PROXY를 설정했습니다.
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
http 프록시에 대한 전역 Git 설정도 있습니다.
c:\project> git config --get http.proxy
http://proxy.mycompany:80
프록시를 통해 일관되게 작업하기 위해 HTTP 패치를받은 사람이 있습니까? 정말 이상한 점은 GitHub의 일부 프로젝트가 제대로 작동 awesome_nested_set
하지만 ( 예 : 레일) 다른 프로젝트는 계속 실패 한다는 것 입니다.
Git이 전역 구성 속성에서 사용하는 HTTP 프록시를 설정할 수도 있습니다 http.proxy
.
git config --global http.proxy http://proxy.mycompany:80
프록시로 인증하려면
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080/
( 인증 형식 은 Credit이 @EugeneKulabuhov 및 @JaimeReynoso 로 이동 합니다.)
이미 이것에 대한 좋은 답변이 있습니다. 그러나 일부 프록시 서버에서는 사용자 ID와 비밀번호로 인증해야하므로 칩인이 필요하다고 생각했습니다. 때때로 이것은 도메인에있을 수 있습니다.
예를 들어 프록시 서버 구성이 다음과 같은 경우
Server: myproxyserver
Port: 8080
Username: mydomain\myusername
Password: mypassword
그런 .gitconfig
다음 다음 명령을 사용 하여 파일에 추가하십시오 .
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080
걱정하지 마십시오 https
. 지정된 프록시 서버가 http 및 https를 지원하는 한 구성 파일의 한 항목으로 충분합니다.
그런 다음 다음을 수행하여 명령이 .gitconfig
파일에 항목을 추가했는지 확인할 수 있습니다 cat .gitconfig
.
파일의 끝에 다음과 같은 항목이 표시됩니다.
[http]
proxy = http://mydomain\\myusername:mypassword@myproxyserver:8080
그게 다야!
마지막으로 효과가 있었던 것은 http_proxy
환경 변수를 설정하는 것이 었습니다 . 나는 HTTP_PROXY
올바르게 설정 했지만 git은 분명히 소문자 버전을 더 좋아합니다.
Windows에서 Git의 mingw 컴파일을 사용하고있는 것 같습니다 (또는 내가 듣지 못한 다른 것). 이것을 디버깅하는 방법이 있습니다 : git에 대한 모든 http 프록시 작업은 curl에 의해 수행된다고 생각합니다. git을 실행하기 전에이 환경 변수를 설정하십시오 :
GIT_CURL_VERBOSE=1
이것은 적어도 당신에게 무대 뒤에서 무슨 일이 일어나고 있는지에 대한 아이디어를 제공해야합니다.
지정된 리포지토리에서 프록시를 사용하려면 다른 리포지토리가 필요하지 않습니다. 바람직한 방법은 리포지토리 의 -c, --config <key=value>
옵션 git clone
입니다. 예 :
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=proxyHost:proxyPort"
네트워크 팀이 인증서를 다시 작성하여 SSL 검사를 수행 한 경우 https URL 대신 http URL을 사용 하고이 var 설정을 사용하면 나에게 도움이되었습니다.
git config --global http.proxy http://proxy:8081
당신도 할 수 편집 .gitconfig 파일은 Windows 시스템에서 % USERPROFILE % 디렉터리에 위치 ( 메모장 % USERPROFILE % .gitconfig ) 또는 리눅스 시스템 (에 ~ 디렉토리에있는 VI ~ / .gitconfig )와 HTTP에 섹션을 추가 아래로.
.gitconfig 파일의 내용 :
[http]
proxy = http://proxy.mycompany:80
이것은 오래된 질문이지만 Windows를 사용하는 경우 https URL을 통해 검색하는 경우 HTTPS_PROXY 설정을 고려하십시오. 나를 위해 일했다!
나를 위해 git : //는 프록시를 통해 작동하지 않지만 https : //는 작동합니다. 모두 git : //를 사용하는 스크립트를 실행했기 때문에 약간의 두통이 발생했기 때문에 모든 것을 쉽게 변경할 수 없었습니다. 그러나 나는이 GEM을 발견했다.
git config --global url."https://github.com/".insteadOf git://github.com/
인증 된 http 프록시를 찾지 http.proxy
도 GIT_PROXY_COMMAND
작동 하지 않습니다 . 프록시는 어느 쪽이든 트리거되지 않습니다. 그러나이 문제를 해결할 수있는 방법을 찾으십시오.
- corkscrew 또는 원하는 다른 대안을 설치하십시오 .
인증 파일을 작성하십시오. 형식
authfile
은 :user_name:password
및user_name
이며password
프록시에 액세스하기위한 사용자 이름 및 비밀번호입니다. 이러한 파일을 작성하려면 다음과 같이 명령을 실행하십시오echo "username:password" > ~/.ssh/authfile
.편집
~/.ssh/config
하고 권한이644
다음 과 같은지 확인하십시오 .chmod 644 ~/.ssh/config
github.com을 예로 들어 다음 행을 추가하십시오 ~/.ssh/config
.
Host github.com
HostName github.com
ProxyCommand /usr/local/bin/corkscrew <your.proxy> <proxy port> %h %p <path/to/authfile>
User git
이제로 작업을 수행 할 때마다 git@github.com
프록시가 자동으로 사용됩니다. Bitbucket 에서도 동일한 작업을 쉽게 수행 할 수 있습니다 .
이것은 다른 접근 방식만큼 우아하지는 않지만 매력처럼 작동합니다.
Windows에서 비밀번호를 일반 텍스트로 .gitconfig에 넣지 않으려면 다음을 사용할 수 있습니다.
- Cntml ( http://cntlm.sourceforge.net/ )
일반 또는 Windows NTLM 프록시에 대해 사용자를 인증하고 인증없이 localhost-proxy를 시작합니다.
그것을 실행하려면 :
- Cntml 설치
- 프록시 인증을 통과하도록 설명서에 따라 Cntml 구성
자식을 새 로컬 호스트 프록시로 지정하십시오.
[http] proxy = http://localhost:3128 # change port as necessary
나를 위해 일한 것은 다음과 같습니다.
sudo apt-get install socat
다음을 사용하여 $ BIN_PATH / gitproxy 내에 파일을 작성하십시오.
#!/bin/sh
_proxy=192.168.192.1
_proxyport=3128
exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport
실행 권한을 부여하는 것을 잊지 마십시오
chmod a+x gitproxy
다음 명령을 실행하여 환경을 설정하십시오.
export PATH=$BIN_PATH:$PATH
git config --global core.gitproxy gitproxy
git에 프록시 설정
명령
git config --global http.proxy http://user:password@domain:port
예
git config --global http.proxy http://clairton:123456@proxy.clairtonluz.com.br:8080
Google에서 첫 번째 결과로 이것을 게시하기 위해이 블로그 게시물은 curl 인증서를 업데이트하여 문제를 해결합니다.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
이것은 나에게 효과가 있었다.
git config --global http.proxy proxy_user:proxy_passwd@proxy_ip:proxy_port
약간 다른 수정 사항으로 동일한 문제가 발생했습니다 .HTTP 지원으로 GBU 재 구축
git:
프로토콜은 내 회사 방화벽을 통해 작동하지 않았다.
예를 들어 시간이 초과되었습니다.
git clone git://github.com/miksago/node-websocket-server.git
curl github.com
그래도 잘 작동하므로 내 http_proxy
환경 변수가 올바른지 알고 있습니다.
http
아래와 같이을 사용해 보았지만 즉시 오류가 발생했습니다.
git clone http://github.com/miksago/node-websocket-server.git
->>> fatal: Unable to find remote helper for 'http' <<<-
git을 다시 컴파일하려고 시도했습니다.
./configure --with-curl --with-expat
그러나 여전히 치명적인 오류가 발생했습니다.
마지막으로 몇 시간 동안 실망한 후 구성 파일을 읽고 이것을 보았습니다.
# curl 헤더와 라이브러리 파일이 있으면 CURLDIR = / foo / bar를 정의하십시오.
# / foo / bar / include 및 / foo / bar / lib 디렉토리
그때 나는 curl
소스를 준수하지 않았기 때문에 헤더 파일을 찾았습니다. 물론 설치되지 않았습니다. 그게 문제였습니다. 누락 된 헤더 파일에 대해 Make가 불평하지 않았습니다. 그래서 나는 --with-curl
옵션이 아무것도 하지 않았다는 것을 몰랐다 (사실 내 버전의 기본값 임 git
).
나는 그것을 고치기 위해 다음을했다.
make에 필요한 헤더를 추가했습니다.
yum install curl-devel (expat-devel-1.95.8-8.3.el5_5.3.i386 was already installed).
새 설치를 유지하기 위해 제거
git
했습니다/usr/local
.나는 단순히 제거
git*
에서/usr/local/share
와/usr/local/libexec
curl
및expat
헤더 파일을 포함하는 포함 디렉토리를 검색 한 후 (내가 읽었 기 때문에configure
) 다음과 같이 환경에 추가했습니다.export CURLDIR=/usr/include export EXPATDIR=/usr/include
란
configure
, 다시에 설명 된 다음 옵션과configure
도 기본값하지만 도대체 파일 자체, 그리고했다 :./configure --with-curl --with-expat
이제 회사 방화벽
http
을git
통해 작동합니다 .git clone http://github.com/miksago/node-websocket-server.git Cloning into 'node-websocket-server'... * Couldn't find host github.com in the .netrc file, using defaults * About to connect() to proxy proxy.entp.attws.com port 8080 * Trying 135.214.40.30... * connected ...
Git credential.helper를 wincred로 설정하십시오.
git config --global credential.helper wincred
자격 증명이 하나만 있는지 확인하십시오.
git config -l
1 이상이 있고 wincred로 설정되지 않은 경우 제거하십시오.
git config --system --unset credential.helper
이제 비밀번호없이 프록시를 설정하십시오.
git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80
추가 한 모든 설정이 제대로 표시되는지 확인하십시오 ....
git config --global -l
이제 잘 가세요!
당신이 사용할 수있는:
git config --add http.proxy http://user:password@proxy_host:proxy_port
프록시 체인 사용
proxychains git pull ...
업데이트 : proxychains가 중단되었습니다 . 대신 proxychains-ng를 사용하십시오.
프록시에는 문제가 없습니다. github (또는 git)에 문제가 있습니다. Linux의 git-1.6.0.1에서도 실패합니다. 버그 는 이미보고되어 있습니다.
Pasties는 이미 Google에 있습니다. 편집 : 꿈을 꾸었어야합니다. 삭제 할 수없는 것 같습니다. 사용 요점 대신?
$ http_proxy는 http://github.com을 위한 것입니다 .... $ https_proxy는 https://github.com을 위한 것입니다 ...
Windows의 경우
이동-> C : / Users / user_name / gitconfig
아래 세부 사항으로 gitconfig 파일 업데이트
[http]
[https]
proxy = https://your_proxy:your_port
[http]
proxy = http://your_proxy:your_port
프록시 및 포트 번호를 확인하는 방법은 무엇입니까?
Internet Explorer-> 설정-> 인터넷 옵션-> 연결-> LAN 설정
https를 사용하여 프록시를 둘러 보았습니다 ... 일부 프록시는 https를 확인조차하지 않습니다.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\git\meantest>git clone http://github.com/linnovate/mean.git
Cloning into 'mean'...
fatal: unable to access 'http://github.com/linnovate/mean.git/': Failed connect
to github.com:80; No error
c:\git\meantest>git clone https://github.com/linnovate/mean.git
Cloning into 'mean'...
remote: Reusing existing pack: 2587, done.
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (24/24), done.
rRemote: Total 2614 (delta 3), reused 4 (delta 0)eceiving objects: 98% (2562/26
Receiving objects: 100% (2614/2614), 1.76 MiB | 305.00 KiB/s, done.
Resolving deltas: 100% (1166/1166), done.
Checking connectivity... done
위의 답변은 프록시가 인증이 필요하지 않을 때 효과적이었습니다. 인증이 필요한 프록시를 사용하는 경우 CCProxy를 시도 할 수 있습니다. 여기에 설정하는 방법에 대한 작은 자습서가 있습니다.
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
나는 새로운 저장소를 밀고 당기고 만들 수 있었다. 모든 것이 잘 작동했습니다. 내가했던 것처럼 Git에 문제가 발생하면 완전히 제거하고 새 버전을 다시 설치하십시오.
이것은 많은 사람들에 의해 답변되었지만 이것은 auth로 프록시 뒤에있는 Winodws 사용자를 위한 것 입니다.
다시 설치 (먼저 실패했습니다. 제거하지 마십시오).
Goto ->
**Windows**
1. msysgit\installer-tmp\etc\gitconfig
Under [http]
proxy = http://user:pass@url:port
**Linux**
1. msysgit\installer-tmp\setup-msysgit.sh
export HTTP_PROXY="http://USER:PASS@proxy.abc.com:8080"
사용자 / 패스에 특수 문자가 있으면 url_encode를 사용 하십시오.
@ user2188765가 이미 지적했듯이 git://
리포지토리 의 프로토콜을로 바꾸십시오 http[s]://
. 이 답변 참조
참고 URL : https://stackoverflow.com/questions/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy
'development' 카테고리의 다른 글
배치 파일 실행 후 콘솔의 자동 폐쇄를 방지하는 방법 (0) | 2020.02.14 |
---|---|
OS X 터미널 색상 (0) | 2020.02.14 |
자바 스크립트로 쿠키 설정 및 쿠키 받기 (0) | 2020.02.14 |
www가 아닌 www로 일반 htaccess 리디렉션 (0) | 2020.02.14 |
Mac OS X의 터미널에서 이전 출력을 지우는 방법은 무엇입니까? (0) | 2020.02.14 |