Enrutamiento por proxy para submódulos de Git
Revisa las URL de los submódulos, los transportes y la configuración de los repositorios cuando el principal funciona a través de un proxy y sus submódulos no.
Clonar correctamente el repositorio principal no pone a prueba sus submódulos. Un submódulo es otro repositorio Git, quizá en otro host y con otro transporte.
Empieza por leer las URL declaradas:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Un repositorio padre obtenido por HTTPS puede contener un submódulo que use git@host:. La configuración de un proxy HTTP no configura esa conexión SSH. Las URL relativas de los submódulos también deben resolverse respecto al remoto adecuado del superproyecto, no a una dirección web que hayas supuesto por el nombre del proyecto.
La configuración local tiene un ámbito
Una entrada local http.proxy pertenece al repositorio cuyo archivo de configuración la contiene. No supongas que revisar solo el padre muestra todos los ajustes efectivos dentro de un repositorio hijo inicializado.
Para imponer temporalmente un proxy HTTPS durante una actualización recursiva, puedes pasar la configuración de línea de comandos de Git a esa invocación:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Sustituye el endpoint de ejemplo. Para submódulos HTTPS públicos en una ruta que permita proxies públicos, la lista de proxies HTTP ofrece direcciones candidatas. Esto no convierte las URL SSH de los submódulos en HTTPS; si la ruta elegida sorprende, también conviene revisar la configuración más específica por URL.
Cuando ha cambiado la URL registrada
Git registra localmente la configuración del submódulo durante la inicialización. Si la URL del submódulo ha cambiado en el proyecto, compara la declaración actual con el valor registrado localmente antes de decidir que el proxy no funciona. La operación sync documentada actualiza las URL registradas a partir de la declaración del proyecto; no es, por sí misma, una configuración de proxy de red.
En fallos anidados, anota la ruta exacta del submódulo y el remoto indicado en el error. Una operación recursiva puede contactar con varios hosts; uno interno quizá necesite una excepción de conexión directa mientras uno público usa el proxy.
Distingue los errores de transporte de los errores del repositorio. Un commit no disponible, el acceso denegado por el repositorio y una conexión fallida al proxy son causas distintas del mismo resultado general «submodule update failed».