Brug en proxy til ét Git-repositorium
Indstil en lokal HTTP-proxy for repositoriet, undersøg konfigurationen Git vælger til den eksterne URL, og fjern tilsidesættelsen, når den ikke længere behøves.
Du behøver ikke en global Git-proxy, bare fordi ét projekt kræver en anden forbindelse. En eksisterende arbejdskopi har sin egen lokale konfiguration, så ændringen kan holdes i det repositorium.
Eksemplerne bruger de aktuelle git config set/get/unset-kommandoer. Projektmappen, den eksterne URL og dokumentations-IP’en er pladsholdere. Til en offentlig repositorietest, hvor offentlige proxyer er tilladt, vælges en kandidat fra listen over HTTP-proxyer.
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
Proxyens URL indeholder dens transportskema. Et HTTPS-remote kan bruge en almindelig HTTP-proxy med CONNECT; HTTPS-skemaet på remote-adressen kræver ikke, at proxyens URL ændres til HTTPS.
Kontroller, hvad Git faktisk valgte
Hvis resultatet er uventet, så undersøg værdien valgt til den faktiske remote-URL:
git -C project config get --show-origin \
--url=https://example.com/team/project.git http.proxy
Brug dit rigtige HTTPS-remote i forespørgslen. Git kan have system-, bruger-, repositorie-, kommandolinje- og URL-specifikke indstillinger. Ser du kun på en global http.proxy-værdi, kan du overse en mere specifik regel. Oprindelsesoutputtet hjælper med at identificere filen eller kommandolinjekilden bag resultatet.
Den lokale indstilling gælder HTTP-baseret adgang fra repositoriet, ikke kun en bestemt gren. Et repositorium med flere HTTP-remotes kan derfor bruge den til flere end det først testede remote. URL-specifikke HTTP-indstillinger findes, hvis du har brug for snævrere matchning.
Før arbejdskopien findes
Til den første kloning skal du vælge, om tilsidesættelsen skal bevares; for at begrænse den til netop dette Git-kald bruges:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
Kommandolinjetilsidesættelsen bliver ikke i sig selv en permanent konfigurationspost i den nye arbejdskopi. Sæt en lokal værdi bagefter, hvis senere fetch-operationer skal bruge den rute.
Et SSH-remote er et andet tilfælde
Et remote, der begynder med git@host: eller ssh://, bruger SSH. Gits HTTP-proxyindstilling gør det ikke til en HTTP-overførsel. Kontroller remote-adressens transport, før du udskifter en fungerende proxy-IP, blot fordi en SSH-operation stadig fejler.
Når den lokale tilsidesættelse ikke længere ønskes, fjernes kun den nøgle:
git -C project config unset --local http.proxy
Fjernelsen lader relevant konfiguration fra andre kilder gælde igen. Det er ikke en kommando til at slette alle proxyindstillinger på maskinen.