Een proxy voor één Git-repository gebruiken
Stel een repositorylokale HTTP-proxy in, bekijk de configuratie die Git voor de remote-URL kiest en verwijder de overschrijving wanneer die niet meer nodig is.
Je hebt geen globale Git-proxy nodig alleen omdat één project een andere verbinding nodig heeft. Een bestaande checkout heeft eigen lokale configuratie, zodat de wijziging bij die repository kan blijven.
Deze voorbeelden gebruiken de huidige git config set/get/unset-commando’s. De projectmap, remote-URL en documentatie-IP zijn plaatsaanduidingen. Kies voor een test van een openbare repository waar openbare proxy’s zijn toegestaan een kandidaat uit de lijst met HTTP-proxy’s.
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
De proxy-URL bevat het transportschema. Een HTTPS-remote kan een gewone HTTP-proxy met CONNECT-ondersteuning gebruiken; het HTTPS-schema van de remote vereist niet dat de proxy-URL naar HTTPS verandert.
Controleer wat Git daadwerkelijk koos
Is het resultaat onverwacht, bekijk dan de waarde die voor de echte remote-URL geselecteerd is:
git -C project config get --show-origin \
--url=https://example.com/team/project.git http.proxy
Gebruik je echte HTTPS-remote in die query. Git kan systeem-, gebruikers-, repository-, opdrachtregel- en URL-specifieke instellingen hebben. Alleen naar een globale http.proxy-waarde kijken kan een specifiekere regel missen. De herkomstuitvoer helpt het bestand of de opdrachtregelbron achter het resultaat te identificeren.
De lokale instelling geldt voor HTTP-toegang vanuit die repository, niet alleen voor een bepaalde branch. Een repository met meerdere HTTP-remotes kan haar dus voor meer gebruiken dan de eerst geteste remote. URL-specifieke HTTP-instellingen zijn beschikbaar voor een beperktere overeenkomst.
Voordat de checkout bestaat
Kies bij de eerste clone of de overschrijving moet blijven gelden; om haar tot die Git-aanroep te beperken, gebruik je:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
De opdrachtregeloverschrijving wordt niet vanzelf een permanente configuratievermelding in de nieuwe checkout. Stel daarna een lokale waarde in als latere fetches die route moeten gebruiken.
Een SSH-remote is een ander geval
Een remote die met git@host: of ssh:// begint, gebruikt SSH. De HTTP-proxyinstelling van Git maakt er geen HTTP-overdracht van. Controleer het transport van de remote voordat je een werkend proxy-IP vervangt alleen omdat een SSH-bewerking nog mislukt.
Als je de lokale overschrijving niet meer wilt, verwijder dan alleen die sleutel:
git -C project config unset --local http.proxy
Daarna komt toepasselijke configuratie uit andere bronnen weer naar voren. Dit is geen commando om alle proxyinstellingen op de machine te wissen.