Aby ste jeden HTTPS klon prehnali cez proxy bez zmeny prostredia procesu Python alebo zápisu globálneho nastavenia Git, odovzdajte premenné funkcii 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',
    },
)

Použite URL proxy priamo v reťazcoch Pythonu. Pre verejný repozitár a trasu, kde sú povolené verejné proxy, zoznam HTTP proxy ponúka kandidátske koncové body. Úvodzovky zoskupenia v shelli nie sú súčasťou tejto URL. URL repozitára SSH sa riadi transportom SSH, preto tento príklad vyžaduje URL repozitára HTTPS.

Ak Git stále volí inú cestu

Mapovanie env aktualizuje prostredie, ktoré podproces Git dedí; nenahrádza toto prostredie prázdnym. Skontrolujte zdedené hodnoty no_proxy kvôli obchádzaniu a vlastnú konfiguráciu Git http.proxy, ktorá môže prepísať príslušné nastavenie prostredia.

Môžete sa tiež stretnúť s príkladmi, ktoré klonu odovzdávajú config. To volá voľbu --config príkazu Git clone a zapisuje konfiguráciu do nového repozitára. Zvoľte to len vtedy, keď má nastavenie prežiť tento proces klonovania; konfigurácia Git pri klonovaní verzus len pri volaní vysvetľuje rozdiel.

Súvisiace články