¿Submódulos, subárboles o algo más para dependencias en Git?

Tengo una situación con un proyecto más grande que tiene muchos módulos / bibliotecas con sus respectivos repositorios. La mayoría de estos módulos son dependencias de otros módulos que no son dependencias de un proyecto. Y ahora ha llegado al punto en que el proyecto principal tiene varios subproyectos y muchos de los módulos se comparten. Algunas dependencias tienen más de 3-4 niveles de profundidad.

He leído que es posible actualizar / extraer submódulos dentro de un proyecto, pero eso solo funciona para el primer nivel de submódulos. Digamos que esos submódulos tienen sus propios submódulos (segundo nivel) y que algunos submódulos de primer nivel comparten los mismos submódulos de segundo nivel. Además, los submódulos de segundo nivel tienen sus submódulos (lvl3), etc. Ahora, lo que debo hacer es impulsar primero los cambios realizados en el tercer nivel, que actualizar los submódulos en los módulos de segundo nivel y presionarlos, ahora puedo ir al primer nivel, actualizar y empujar y finalmente actualizar los submódulos de mi proyecto y empujarlos.

Esto ahora no solo es más trabajo, sino que aún no resuelve mi problema de por qué necesito algo como esto y es poder empujar y extraer fácilmente múltiples repositorios cuando se realizan cambios en aquellos que dependen unos de otros. Puede suceder fácilmente que alguien en un equipo empuje los cambios en 4 de 5 repositorios, y cuando otros miembros extraen todo, excepto esta línea de producción, se detiene hasta que se encuentra un error.

¿Qué puedo hacer sobre esto? Tal vez algunos consejos sobre el flujo de trabajo, ¿alguien más ha encontrado este problema o hay alguna característica en Git que resuelva esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta