Chcete-li jeden HTTPS klon protáhnout přes proxy bez změny prostředí procesu Python nebo zápisu globálního nastavení Git, předejte proměnné funkci 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žijte URL proxy přímo v řetězcích Pythonu. Pro veřejný repozitář a trasu, kde jsou veřejné proxy povoleny, seznam HTTP proxy nabízí kandidátské koncové body. Uvozovky pro seskupení v shellu nejsou součástí této URL. URL repozitáře SSH se řídí transportem SSH, takže tento příklad vyžaduje URL repozitáře HTTPS.

Pokud Git stále volí jinou cestu

Mapování env aktualizuje prostředí, které podproces Git dědí; nenahrazuje toto prostředí prázdným. Zkontrolujte zděděné hodnoty no_proxy kvůli obcházení a vlastní konfiguraci Git http.proxy, která může přebít odpovídající nastavení prostředí.

Můžete se také setkat s příklady, které klonu předávají config. To volá volbu --config příkazu Git clone a zapisuje konfiguraci do nového repozitáře. Zvolte to jen tehdy, když má nastavení přežít tento proces klonování; konfigurace Git při klonování versus pouze při volání vysvětluje rozdíl.

Související články