Obtinerea Git de a lucra cu un server proxy - nu cu "Request timed out"

Cum fac rost de Git pentru a utiliza un server proxy?

Am nevoie pentru a verifica codul de pe un Git server, dar se arată "Request timed out" de fiecare dată. Cum pot obține în jurul valorii de acest lucru?

Alternativ, cum pot seta un proxy server?

Comentarii la întrebare (6)
Soluția

Comanda de a utiliza:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
  • schimba `proxyuser la utilizator proxy
  • schimba `proxypwd la proxy parola
  • schimba `proxy.server.com la URL-ul proxy server
  • schimba `8080 la port proxy configurat pe serverul proxy

Dacă vă decideți în orice moment pentru a reseta acest proxy și de a lucra fără proxy:

Comanda de a utiliza:

git config --global --unset http.proxy

În cele din urmă, pentru a verifica în prezent set proxy:

git config --global --get http.proxy
Comentarii (23)

Aceasta a lucrat pentru mine, în windows XP spatele unui firewall corporativ.

Nu trebuie să instalați nici un proxy local, sau orice alte programe în afară de git v1.771 din http://code.google.com/p/msysgit/downloads/list?can=3

$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master

proxyuser= utilizator proxy nu a fost atribuit de către departamentul nostru IT, în cazul meu, este același utilizator windows am folosi pentru a vă conecta la PC-ul meu, cel de utilizator Active Directory

proxypwd= parola mea de utilizator proxy

proxy.server.com:8080 = proxy numele și port, am luat-o de la Panoul de Control, Opțiuni Internet, Conexiuni Lan Settings buton, butonul Avansat în interiorul secțiunea Proxy Server, utilizați servername și port de pe prima (http) rând.

mygithubuser = utilizatorul nu utilizați pentru a vă conecta la github.com

mygithubpwd = parola pentru github.com utilizator

repoUser = utilizatorul proprietar al repo

repoName = numele repo

Comentarii (13)

Seta o variabila de sistem numit http_ proxy cu valoarea ProxyServer:Port. Care este cea mai simplă soluție. Respectiv, utilizarea https_proxy ca daefu subliniat în comentarii.

Setarea gitproxy (ca sleske mențiuni) este o altă opțiune, dar care necesită un "comanda", care nu este la fel de simplă ca și soluția de mai sus.

Referințe: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

Comentarii (6)

Dacă linia de comandă modul de configurare a serverului dvs. proxy nu't de lucru, probabil ca puteti edita .gitconfig (în rădăcina de profil, care pot ascunde atât în C:\Documents și Setările și pe unele unitate de rețea) si adauga asta:

[http]
    proxy = http://username:password@proxy.at.your.org:8080

YMMV totuși, aceasta acoperă doar primul pas din linia de comandă de configurare. Poate fi necesar să editați sistemul git de configurare si nu am nici o idee unde s-au ascuns asta.

Comentarii (3)

Ca o alternativă la utilizarea git config --global http.adresa proxy:port, puteți seta proxy pe linia de comandă:

git -c "http.proxy=address:port" clone https://...

Avantajul este proxy-ul nu este persistent set. Sub Bash s-ar putea stabili un alias:

alias git-proxy='git -c "http.proxy=address:port"'
Comentarii (0)

Dacă utilizați ubuntu, apoi efectuați următoarele ...

Pasul 1 : Instalați tirbușon

$ sudo apt-get install corkscrew

Pasul 2 : Scrie un script numit git-proxy.sh și se adaugă următoarele

#!/bin/sh

exec corkscrew   $*

#  and  are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

Pasul 3 : Asigurați-script executabil

$ chmod +x git-proxy.sh

Pasul 4 : configurarea proxy comanda pentru GIT prin setarea variabilei de mediu

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

Acum folosesc git comenzi,cum ar fi

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Comentarii (1)

Confruntat cu aceeași problemă, pentru că de mai multe .gitconfig fișiere în windows, urmat pașii de mai jos pentru a rezolva la fel:

Pasul 1: Deschideți Git BASH

Pasul 2: Uita-te pentru .gitconfig, executând următoarea comandă:

git config --list --global --show-origin

Pasul 3: Copia mai jos conținutul în .gitconfig:

[http]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = aggarwalarpit.89@gmail.com
Comentarii (0)

Încercați să puneți următoarele la ~/.gitconfig fișier:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://
Comentarii (1)

Pentru git protocol (git://...), instalați socat și de a scrie un scenariu, cum ar fi:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

face executabil, pune-l în calea ta, și în~/.gitconfig " set " de bază.gitproxy la numele acelui script.

Comentarii (3)

Nu's ceva ce am observat și vreau să împărtășesc aici:

git config --global http.proxy http://:

Metoda de mai sus nu va funcționa pentru ssh Url-uri (de exemplu, git@github.com:<nume de utilizator>/<numele proiectului>.git):

git clone git@github.com:/.git // will not use the http proxy

Și lucrurile nu se vor schimba dacă ne-am stabilit SSH pe portul HTTPS (https://help.github.com/en/articles/using-ssh-over-the-https-port) pentru că se schimbă doar port (22 implicit) conexiunea ssh se conectează la.

(Nu este un vorbitor nativ de limba engleză, vă rugăm să-mi rafinez cuvinte, dacă este necesar)

Comentarii (0)

În plus de thse răspunsuri, am găsit util să ia în considerare aceste 2 puncte:

Unul ar putea avea nevoie de a aplica o schemă de autentificare:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

De asemenea, de obicei, cu autentificare NTLM schema, unul ar putea avea nevoie pentru a oferi în mod explicit în ANUNȚUL de domeniu.

În git bash:

echo %userdomain%

Și actualizarea http.proxy în consecință:

git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080

Oricum, ancheta poate fi ajutat prin adăugarea CURL busteni:

export GIT_CURL_VERBOSE=1
Comentarii (1)

Nu funcționează pe Windows XP la locul de muncă(de stat/guvern), așa că mi-am făcut cercetări și am găsit asta aici și a lucrat pentru mine. Sper că acest lucru ajută :)

La http_ proxy Variabila de Mediu

Dacă utilizați un server proxy sau firewall, trebuie să setați http_ proxy variabilă de mediu, în scopul de a accesa unele url-ul de linie de comandă. Exemplu : Instalarea ppm pentru perl sau aplicarea rpm in linux ,actualizarea ubuntu

Setați http proxy variabilă cu numele de gazdă sau adresa IP a serverului proxy: http proxy=http:// [proxy.example.org]

Dacă serverul proxy necesită un nume de utilizator și parola, le includă în următoarea formă: http_ proxy=http:// [username:password@proxy.example.org]

Dacă serverul proxy foloseste un alt port decat 80, includ numărul de port: http_ proxy=http:// [username:password@proxy.example.org:8080]

Windows XP

  1. Deschideți Panoul de Control și faceți clic pe pictograma Sistem.
  2. Pe fila complex, faceți clic pe Variabile de Mediu.
  3. Faceți clic pe Nou în variabilele de Sistem panou.
  4. Adaugă http_ proxy cu proxy corespunzătoare de informații (a se vedea exemplele de mai sus).

Linux, Solaris sau HP-UX

Setați http_ proxy variabila de mediu folosind comanda specifice pentru shell (de exemplu, set sau export). Pentru a face această schimbare persistentă, adăugați comanda corespunzătoare profilului de fișier pentru shell. De exemplu, în bash, adăugați o linie ca în urma ta .bash_profile sau .bashrc fișier:

  1. http_ proxy=http:// [username:password@hostname:port];
  2. export $http_ proxy
Comentarii (0)

Dacă ai tsocks sau proxychains instalat și configurat, puteți

$ tsocks git clone 

sau

$ proxychains git clone 

pentru a face mai scurt, am creat un simbol link-ul /usr/bin/p "pentru" proxychains, deci nu pot folosi astfel de prognoze

p git clone 

și o pot folosi pentru proxy orice comanda,

p 

apropo, proxychains nu este actualizat pentru o lungă perioadă de timp, poate vrei să încerci proxychians-ng

Comentarii (0)

Setarea git proxy pe terminal

dacă

  • nu vrei set proxy pentru fiecare dintre git proiecte manual, unul câte unul
  • întotdeauna doriți să utilizați același proxy pentru toate proiectele dvs.

Setați-l la nivel global odată

git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port

dacă doriți să setați proxy doar pentru un singur proiect git (pot exista situații în care este posibil să nu doriți să utilizați același proxy sau orice proxy pentru unele git conexiuni)

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port

dacă doriți pentru a afișa curent setările proxy

git config --list 

dacă doriți să eliminați proxy la nivel global

git config --global --unset http.proxy
git config --global --unset https.proxy

dacă doriți să eliminați proxy pentru un singur git rădăcină

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
Comentarii (0)

Am urmat cele mai multe dintre răspunsurile pe care le-a fost recomandat aici. Prima dată am primit urmatoarea eroare:

fatală: în imposibilitatea de a accesa 'https://github.com/folder/sample.git/&#39;: schannel: next InitializeSecurityContext nu a reușit: eroare Necunoscută (0x80092012) - La revocarea funcția a fost în imposibilitatea de a verifica revocare pentru certificat.

Apoi am încercat următoarea comandă de @Salim Hamidi

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

Dar am si eu urmatoarea eroare:

fatală: în imposibilitatea de a accesa 'https://github.com/folder/sample.git/&#39;: a Primit codul HTTP 407 din proxy după CONECTA

Acest lucru ar putea întâmpla dacă serverul proxy poate't verificați dacă certificatul SSL. Deci, vrem să ne asigurăm că ssl verificare este oprit (nu este recomandat pentru non site-uri de încredere), așa că am făcut pașii următori care a fost recomandat de @Arpit dar cu mici modificări:

1.În primul rând asigurați-vă că pentru a elimina orice anterioară setări proxy:

git config --global --unset http.proxy

2.Apoi lista și pentru a obține gitconfig conținut

git config --list --show-origin

3.Ultima actualizare conținutul gitconfig fișier ca mai jos:

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
Comentarii (0)

aici este setarea proxy

git config --global http.proxy http://:@:
git config --global https.proxy http://:@:
Comentarii (0)

Am incercat toate raspunsurile de mai sus și nimic nu a lucrat pentru mine, ca acolo a fost o parolă proxy probleme de codificare.

Această comandă lucrat:

git config --global http.proxy http://username@proxy.example.com:PortNumber 

Nu introduceți parola în comanda dumneavoastră. Acesta va dinamic cere atunci când încercați să vă conectați la orice git repo.

Comentarii (1)

Pentru utilizatorii de windows: dacă git config " sau " set http_ proxy= nu't de lucru, acest răspuns poate ajuta:

înlocuiți git:// protocolul de depozit git cu http://. Rețineți, vă'll trebuie să setați `http_ proxy prima, oricum.

Comentarii (0)

După neobosit încearcă fiecare soluție pe această pagină, munca mea în jurul valorii de a fost de a utiliza și SSH-cheie în loc!

  1. Deschide Git Bash
  2. $ ssh-keygen.exe -t rsa-C
  3. Deschide-ți Git furnizor (Github, Bitbucket, etc.)
  4. Adaugă copia id_rsa.pub conținutul fișierului în Git furnizor's pagina de intrare (verificați profilul dvs.)
Comentarii (0)