Pentru a trimite un clon HTTPS printr-un proxy fără a schimba mediul procesului Python sau a scrie o setare Git globală, pasează variabilele către 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',
    },
)

Folosește URL-ul proxy direct în șirurile Python. Pentru un depozit public și o rută în care proxys-urile publice sunt permise, lista de proxys HTTP oferă puncte finale candidate. Ghilimelele de grupare ale shell-ului nu fac parte din acel URL. Un URL de depozit SSH urmează transportul SSH, așa că acest exemplu necesită un URL de depozit HTTPS.

Dacă Git alege în continuare altă rută

Maparea env actualizează mediul moștenit de subprocesul Git; nu înlocuiește acel mediu cu unul gol. Verifică valorile no_proxy moștenite pentru o ocolire și configurația http.proxy proprie a Git, care poate suprascrie setarea de mediu corespunzătoare.

Poți întâlni și exemple care pasează config clonului. Aceasta invocă opțiunea --config a comenzii Git clone și scrie configurația în noul depozit. Alege asta doar când setarea trebuie să supraviețuiască acestui proces de clonare; configurația Git la clonare față de doar la invocare explică diferența.

Articole similare