Nie potrzebujesz globalnego proxy Git tylko dlatego, że jeden projekt wymaga innego połączenia. Istniejąca kopia robocza ma własną konfigurację lokalną, więc zmiana może pozostać w tym repozytorium.

Przykłady korzystają z obecnych poleceń git config set/get/unset. Katalog projektu, zdalny URL i dokumentacyjny IP są symbolami zastępczymi. Do testu publicznego repozytorium, w którym wolno używać publicznych proxy, wybierz kandydata z listy proxy HTTP.

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

URL proxy zawiera schemat transportu. Zdalne repozytorium HTTPS może korzystać ze zwykłego proxy HTTP obsługującego CONNECT; schemat HTTPS zdalnego adresu nie wymaga zmiany URL proxy na HTTPS.

Sprawdź, co Git rzeczywiście wybrał

Jeśli wynik jest nieoczekiwany, sprawdź wartość wybraną dla rzeczywistego zdalnego URL:

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

Użyj w zapytaniu prawdziwego zdalnego repozytorium HTTPS. Git może mieć ustawienia systemowe, użytkownika, repozytorium, wiersza poleceń i właściwe dla URL. Sam globalny http.proxy może nie ujawnić bardziej szczegółowej reguły. Wynik z informacją o pochodzeniu pomaga odnaleźć plik lub źródło w wierszu poleceń.

Ustawienie lokalne dotyczy dostępu HTTP z tego repozytorium, nie tylko konkretnej gałęzi. Repozytorium z kilkoma zdalnymi adresami HTTP może używać go również dla innych niż pierwszy testowany. Dla węższego dopasowania dostępne są ustawienia HTTP właściwe dla URL.

Zanim powstanie kopia robocza

Przy pierwszym klonowaniu zdecyduj, czy nadpisanie ma przetrwać; aby ograniczyć je do tego wywołania Git, użyj:

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

Nadpisanie z wiersza poleceń samo nie staje się trwałym wpisem konfiguracji nowej kopii. Ustaw potem lokalną wartość, jeśli późniejsze operacje fetch mają używać tej trasy.

Zdalne repozytorium SSH to inny przypadek

Zdalny adres zaczynający się od git@host: lub ssh:// używa SSH. Ustawienie proxy HTTP w Git nie zamienia go w transfer HTTP. Sprawdź transport zdalnego adresu, zanim zastąpisz działający IP proxy tylko dlatego, że operacja SSH nadal zawodzi.

Gdy lokalne nadpisanie przestaje być potrzebne, usuń tylko ten klucz:

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

Usunięcie ponownie ujawnia mającą zastosowanie konfigurację innych źródeł. To nie jest polecenie usunięcia wszystkich ustawień proxy z komputera.

Powiązane artykuły