För att skicka en HTTPS-klon genom en proxy utan att ändra Python-processens miljö eller skriva en global Git-inställning, ge variablerna till Repo.clone_from:

from git import Repo

repo = Repo.clone_from(
    'https://git.example/team/project.git',
    '/path/to/new-checkout',
    env={
        'http_proxy': 'http://proxy.example:8080',
        'https_proxy': 'http://proxy.example:8080',
    },
)

Använd proxy-URL:en direkt i Python-strängarna. För ett offentligt arkiv och en väg där offentliga proxyservrar tillåts levererar HTTP-proxylistan kandidat-slutpunkter. Skalets grupperingscitattecken är inte en del av den URL:en. En SSH-arkiv-URL följer SSH-transporten istället, så det här exemplet kräver en HTTPS-arkiv-URL.

Om Git fortfarande tar en annan väg

env-mappningen uppdaterar miljön som Git-underprocessen ärver; den ersätter inte miljön med en tom. Kontrollera ärvda no_proxy-värden för en kringgång och Gits egen http.proxy-konfiguration, som kan åsidosätta motsvarande miljöinställning.

Du kan också stöta på exempel som ger config till klonen. Det anropar Git clones --config-alternativ och skriver konfiguration i det nya arkivet. Välj det bara när inställningen ska överleva den här klonprocessen; Git-konfiguration vid kloning kontra bara vid anropet förklarar skillnaden.

Relaterade artiklar