Aby przepuścić jeden klon HTTPS przez proxy bez zmiany środowiska procesu Pythona i bez zapisywania globalnego ustawienia Git, przekaż zmienne do 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',
    },
)

Użyj adresu URL proxy bezpośrednio w łańcuchach Pythona. Dla publicznego repozytorium i trasy, na której dozwolone są publiczne proxy, lista proxy HTTP dostarcza kandydatów na punkty końcowe. Cudzysłowy grupujące powłoki nie są częścią tego adresu. Adres repozytorium SSH korzysta z transportu SSH, więc ten przykład wymaga adresu repozytorium HTTPS.

Jeśli Git nadal wybiera inną trasę

Mapowanie env aktualizuje środowisko dziedziczone przez podproces Git; nie zastępuje go pustym środowiskiem. Sprawdź odziedziczone wartości no_proxy pod kątem obejścia oraz własną konfigurację http.proxy Git, która może nadpisać odpowiednie ustawienie środowiska.

Możesz też spotkać przykłady przekazujące config do klonu. To wywołuje opcję --config polecenia Git clone i zapisuje konfigurację w nowym repozytorium. Wybierz to tylko wtedy, gdy ustawienie ma przetrwać ten proces klonowania; konfiguracja Git w czasie klonowania kontra tylko przy wywołaniu wyjaśnia różnicę.

Powiązane artykuły