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.

Relaterede artikler