Roteamento de proxy para submódulos do Git
Inspecione URLs de submódulos, tipos de transporte e configurações do repositório quando o checkout principal do Git funciona via proxy, mas os filhos não.
Um clone bem-sucedido do repositório principal não testa seus submódulos. Um submódulo é outro repositório Git, possivelmente em outro host e possivelmente usando outro transporte.
Comece lendo as URLs declaradas:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Um repositório pai obtido por HTTPS pode conter um submódulo que usa git@host:. Uma configuração de proxy HTTP não configura essa conexão SSH. URLs relativas de submódulos também precisam ser resolvidas em relação ao remoto apropriado do superprojeto, e não a qualquer endereço web presumido pelo nome do projeto.
As configurações locais do repositório têm um escopo
Uma entrada local http.proxy pertence ao repositório cujo arquivo de configuração a contém. Não presuma que inspecionar apenas o pai revele todas as configurações usadas dentro de um repositório filho inicializado.
Para uma substituição temporária de proxy HTTPS durante uma atualização recursiva, a configuração de linha de comando do Git pode ser fornecida àquela execução:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Substitua o endpoint de exemplo. Para submódulos HTTPS públicos em uma rota que permita proxies públicos, a lista de proxies HTTP oferece endereços candidatos. Isso não converte URLs SSH de submódulos para HTTPS; verifique também uma configuração específica da URL quando a rota surpreender.
Quando a URL registrada mudou
O Git registra localmente a configuração do submódulo durante a inicialização. Se a URL do submódulo mudou no projeto, compare a declaração atual com o valor registrado antes de concluir que o proxy está inoperante. A sincronização documentada atualiza as URLs registradas a partir da declaração do projeto; ela não é uma configuração de proxy de rede.
Em falhas aninhadas, anote o caminho exato do submódulo e o remoto citado no erro. Uma operação recursiva pode contatar vários hosts, e um host interno pode exigir exceção direta enquanto um host público usa o proxy.
Mantenha erros de transporte separados de erros do repositório. Um commit indisponível, acesso negado e conexão falha com o proxy são motivos diferentes para o mesmo resultado “falha ao atualizar o submódulo”.