Da biste proveli jedan HTTPS klon kroz proxy bez mijenjanja okruženja Python procesa ili pisanja globalne Git postavke, predajte varijable funkciji 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',
    },
)

Koristite proxy URL direktno u Python nizovima. Za javni repozitorij i rutu na kojoj su javni proxyji dozvoljeni, lista HTTP proxyja nudi kandidat-endpointove. Navodnici za grupisanje u shellu nisu dio tog URL-a. URL SSH repozitorija slijedi SSH transport, pa ovaj primjer zahtijeva HTTPS URL repozitorija.

Ako Git i dalje ide drugim putem

Mapiranje env ažurira okruženje koje Git podproces nasljeđuje; ono ne zamjenjuje to okruženje praznim. Provjerite naslijeđene vrijednosti no_proxy zbog zaobilaženja i provjerite vlastitu Git konfiguraciju http.proxy, koja može nadjačati odgovarajuću postavku okruženja.

Možete sresti i primjere koji klonu predaju config. To poziva opciju --config naredbe Git clone i upisuje konfiguraciju u novi repozitorij. Odaberite to samo kada postavka treba nadživjeti ovaj proces kloniranja; Git konfiguracija u vrijeme kloniranja i samo u vrijeme poziva objašnjava razliku.

Povezani članci