Unha soa configuración de Git pode servir dúas rutas moi distintas: un host externo alcanzado mediante un proxy aprobado e un host interno alcanzado directamente. Non ten que editar o valor global predeterminado cada vez que cambia de repositorio.

Git admite configuración HTTP específica por URL. Por exemplo:

[http]
    proxy = http://proxy.example:8080
[http "https://git.office.example/"]
    proxy =

Para un repositorio público externo onde se permiten proxies públicos, a lista de proxies HTTP ofrece candidatos para o punto final predeterminado. O valor baleiro é unha anulación explícita para a URL coincidente. É distinto de eliminar esa clave máis específica, o que pode volver expor o proxy xenérico.

Faga coincidir a URL que usa Git

O esquema, o nome de host, o porto, a ruta e o nome de usuario opcional participan nas regras de coincidencia documentadas. Non trate a subsección de URL como unha expresión xeral de comodíns da shell. Unha regra de ruta máis estreita pode vencer unha regra de host máis ampla.

Para unha vista de só lectura da configuración de proxy coincidente:

git config --get-urlmatch http.proxy https://git.office.example/team/project.git

Isto inspecciona a coincidencia de configuración. Non é unha proba de rede nin demostra que a ruta sexa alcanzable. Teña en conta tamén outros ámbitos de configuración e os axustes de contorno pertinentes.

Unha redirección non é unha nova coincidencia de configuración

A documentación de Git di que as URL coincidentes son as que se fornecen directamente aos comandos de Git; as URL visitadas por mor dunha redirección non participan nesa coincidencia. Teña presente esa limitación se o primeiro host redirixe as descargas a outro lugar.

A ruta tamén debería coincidir co transporte. Un remoto SSH non se rexe por unha subsección de URL HTTP só porque o mesmo servizo ofreza un sitio web HTTPS.

Use unhas poucas regras intencionadas e despois inspeccione o resultado para URL representativas. Unha longa acumulación de entradas de proxy globais, locais do repositorio e específicas por URL é moito máis difícil de razoar que a distinción de rede que tentaba expresar.

Artigos relacionados