Globální proxy pro Git nepotřebujete jen proto, že jeden projekt vyžaduje jiné spojení. Existující pracovní kopie má vlastní místní konfiguraci, takže změna může zůstat u tohoto repozitáře.

Příklady používají současné příkazy git config set/get/unset. Adresář projektu, vzdálené URL a dokumentační IP jsou zástupné hodnoty. Pro test veřejného repozitáře, kde jsou veřejné proxy povoleny, vyberte kandidáta ze seznamu 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éma. Vzdálený repozitář HTTPS může používat běžnou HTTP proxy podporující CONNECT; schéma HTTPS vzdáleného URL nevyžaduje změnu URL proxy na HTTPS.

Ověřte, co Git skutečně vybral

Je-li výsledek nečekaný, zkontrolujte hodnotu vybranou pro skutečné vzdálené URL:

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

V dotazu použijte skutečný vzdálený repozitář HTTPS. Git může mít systémová, uživatelská, repozitářová, příkazová i URL-specifická nastavení. Pohled jen na globální hodnotu http.proxy může přehlédnout konkrétnější pravidlo. Výpis původu pomáhá určit soubor nebo příkazový zdroj výsledku.

Místní nastavení platí pro přístup přes HTTP z repozitáře, ne jen pro určitou větev. Repozitář s více vzdálenými HTTP adresami jej proto může využít i pro jiné než první testovanou. Pro užší shodu jsou dostupná HTTP nastavení pro konkrétní URL.

Než pracovní kopie vznikne

Pro první klonování zvolte, zda má přepsání přetrvat; chcete-li je omezit na toto spuštění Gitu, použijte:

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

Přepsání z příkazové řádky se samo nestane trvalou konfigurační položkou v nové pracovní kopii. Nastavte poté místní hodnotu, mají-li pozdější fetch operace používat tuto trasu.

Vzdálený repozitář SSH je jiný případ

Vzdálená adresa začínající git@host: nebo ssh:// používá SSH. Nastavení HTTP proxy v Gitu ji nezmění na HTTP přenos. Než vyměníte funkční IP proxy jen proto, že operace SSH stále selhává, ověřte transport vzdálené adresy.

Když už místní přepsání nechcete, odstraňte pouze tento klíč:

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

Po odstranění se opět uplatní příslušná konfigurace z jiných zdrojů. Nejde o příkaz k vymazání všech nastavení proxy v počítači.

Související články