Globálnu proxy pre Git nepotrebujete len preto, že jeden projekt vyžaduje iné spojenie. Existujúca pracovná kópia má vlastnú miestnu konfiguráciu, takže zmena môže zostať pri tomto repozitári.

Príklady používajú súčasné príkazy git config set/get/unset. Adresár projektu, vzdialené URL a dokumentačná IP sú zástupné hodnoty. Pre test verejného repozitára, kde sú verejné proxy povolené, vyberte kandidáta zo zoznamu HTTP proxy.

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

URL proxy obsahuje transportnú schému. Vzdialený repozitár HTTPS môže používať bežnú HTTP proxy podporujúcu CONNECT; HTTPS schéma vzdialeného URL nevyžaduje zmenu URL proxy na HTTPS.

Overte, čo Git skutočne vybral

Ak je výsledok nečakaný, skontrolujte hodnotu vybranú pre skutočné vzdialené URL:

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

V dopyte použite skutočný vzdialený repozitár HTTPS. Git môže mať systémové, používateľské, repozitárové, príkazové aj URL-špecifické nastavenia. Pohľad iba na globálnu hodnotu http.proxy môže prehliadnuť konkrétnejšie pravidlo. Výpis pôvodu pomáha určiť súbor alebo príkazový zdroj výsledku.

Miestne nastavenie platí pre prístup cez HTTP z repozitára, nie iba pre určitú vetvu. Repozitár s viacerými vzdialenými HTTP adresami ho preto môže použiť aj pre iné než prvú testovanú. Pre užšiu zhodu sú dostupné HTTP nastavenia pre konkrétne URL.

Skôr než vznikne pracovná kópia

Pri prvom klonovaní zvoľte, či má prepísanie pretrvať; ak ho chcete obmedziť na toto spustenie Gitu, použite:

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

Prepísanie z príkazového riadka sa samo nestane trvalou konfiguračnou položkou novej pracovnej kópie. Potom nastavte miestnu hodnotu, ak majú neskoršie operácie fetch používať túto trasu.

Vzdialený repozitár SSH je iný prípad

Vzdialená adresa začínajúca git@host: alebo ssh:// používa SSH. Nastavenie HTTP proxy v Gite ju nezmení na HTTP prenos. Pred výmenou funkčnej IP proxy len pre pokračujúce zlyhanie operácie SSH overte transport vzdialenej adresy.

Keď už miestne prepísanie nechcete, odstráňte iba tento kľúč:

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

Po odstránení sa opäť uplatní príslušná konfigurácia z iných zdrojov. Nie je to príkaz na vymazanie všetkých nastavení proxy v počítači.

Súvisiace články