Para enviar um clone HTTPS através de um proxy sem alterar o ambiente do processo Python nem escrever uma configuração global do Git, passe as variáveis para 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',
    },
)

Use o URL do proxy diretamente nas strings do Python. Para um repositório público e uma rota onde proxies públicos são permitidos, a lista de proxies HTTP fornece endpoints candidatos. As aspas de agrupamento da shell não fazem parte desse URL. Um URL de repositório SSH segue o transporte SSH, por isso este exemplo exige um URL de repositório HTTPS.

Se o Git ainda escolher outro caminho

O mapeamento env atualiza o ambiente herdado pelo subprocesso do Git; não substitui esse ambiente por um vazio. Verifique os valores no_proxy herdados para um desvio e a configuração http.proxy do próprio Git, que pode substituir a definição de ambiente correspondente.

Também pode encontrar exemplos que passam config ao clone. Isso invoca a opção --config do Git clone e grava configuração no novo repositório. Escolha isso apenas quando a configuração deve sobreviver a este processo de clonagem; configuração do Git no momento do clone versus apenas na invocação explica a diferença.

Artigos relacionados