No necessites un proxy Git global només perquè un projecte requereixi una connexió diferent. Una còpia de treball existent té configuració local pròpia, de manera que pots mantenir el canvi en aquell repositori.

Els exemples fan servir les ordres actuals git config set/get/unset. El directori del projecte, l’URL remot i la IP de documentació són valors de mostra. Per provar un repositori públic on es permetin proxys públics, tria un candidat de la llista de proxys HTTP.

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

L’URL del proxy inclou l’esquema de transport. Un remot HTTPS pot utilitzar un proxy HTTP normal que admeti CONNECT; l’esquema HTTPS del remot no obliga a canviar l’URL del proxy a HTTPS.

Comprova què ha seleccionat realment Git

Si el resultat és inesperat, inspecciona el valor seleccionat per a l’URL remot real:

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

Utilitza el remot HTTPS real a la consulta. Git pot tenir configuració de sistema, d’usuari, de repositori, de línia d’ordres i específica d’URL. Mirar només un valor global http.proxy pot passar per alt una regla més específica. La sortida d’origen ajuda a identificar el fitxer o la línia d’ordres d’on prové el resultat.

El paràmetre local s’aplica a l’accés basat en HTTP des del repositori, no només a una branca. Un repositori amb diversos remots HTTP pot utilitzar-lo per a més remots que el provat inicialment. Si cal una coincidència més estreta, hi ha configuració HTTP específica d’URL.

Abans que existeixi la còpia de treball

Per al clonatge inicial, tria si la sobreescriptura ha de persistir; per limitar-la a aquella invocació de Git, utilitza:

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

La sobreescriptura de línia d’ordres no es converteix per si mateixa en una entrada permanent de configuració a la nova còpia. Estableix després un valor local si les recuperacions posteriors han d’utilitzar aquella ruta.

Un remot SSH és un altre cas

Un remot que comença per git@host: o ssh:// utilitza SSH. La configuració de proxy HTTP de Git no el converteix en una transferència HTTP. Comprova el transport del remot abans de substituir una IP de proxy funcional només perquè una operació SSH continua fallant.

Quan ja no vulguis la sobreescriptura local, elimina només aquella clau:

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

Eliminar-la torna a deixar vigent la configuració aplicable d’altres fonts. No és una ordre per esborrar tots els paràmetres de proxy de la màquina.

Articles relacionats