Nu ai nevoie de un proxy Git global doar fiindcă un proiect cere altă conexiune. O copie de lucru existentă are propria configurație locală, deci poți păstra schimbarea la acel depozit.

Exemplele folosesc comenzile actuale git config set/get/unset. Directorul proiectului, URL-ul remote și IP-ul de documentație sunt valori de înlocuit. Pentru un test de depozit public în care proxy-urile publice sunt permise, alege un candidat din lista de proxy-uri HTTP.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

URL-ul proxy include schema de transport. Un remote HTTPS poate folosi un proxy HTTP obișnuit cu CONNECT; schema HTTPS a remote-ului nu cere schimbarea URL-ului proxy în HTTPS.

Verifică ce a selectat Git efectiv

Dacă rezultatul este neașteptat, inspectează valoarea aleasă pentru URL-ul remote real:

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

Folosește remote-ul HTTPS real în acea interogare. Git poate avea setări de sistem, utilizator, depozit, linie de comandă și specifice URL-ului. Privind doar o valoare globală http.proxy poți rata o regulă mai precisă. Ieșirea originii ajută să identifici fișierul sau sursa din linia de comandă din spatele rezultatului.

Setarea locală se aplică accesului HTTP din depozit, nu doar unei anumite ramuri. Un depozit cu mai multe remote-uri HTTP o poate folosi și pentru altele decât primul testat. Există setări HTTP specifice URL-ului pentru o potrivire mai îngustă.

Înainte să existe copia de lucru

Pentru clona inițială, alege dacă suprascrierea trebuie să persiste; pentru a o limita la acea invocare Git, folosește:

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

Suprascrierea din linia de comandă nu devine singură o intrare permanentă în noua copie. Setează ulterior o valoare locală dacă următoarele operații fetch trebuie să folosească ruta.

Un remote SSH este alt caz

Un remote care începe cu git@host: sau ssh:// folosește SSH. Setarea proxy HTTP a Git nu îl transformă în transfer HTTP. Verifică transportul remote-ului înainte să schimbi un IP de proxy funcțional doar pentru că o operație SSH încă eșuează.

Când nu mai vrei suprascrierea locală, elimină numai acea cheie:

git -C project config unset --local http.proxy

Eliminarea face din nou aplicabilă configurația relevantă din alte surse. Nu este o comandă care șterge toate setările proxy ale mașinii.

Articole similare