Flujo de trabajo de submódulos Git

En mi proyecto necesito usar un código de terceros, almacenado en varios repositorios de Git. Mi proyecto también se almacena en el repositorio Git (separado). Hay varias personas trabajando conmigo en el proyecto principal, y yo soy el encargado.

En proyectos anteriores solía copiar las dependencias manualmente en el árbol de trabajo de Git, agregando un pequeño archivo que especifica la versión que utilizo.

Ahora esto es bastante incómodo, ya que necesito actualizar diariamente una de las dependencias y, a menudo, aportar código a mí mismo, la mayoría del tiempo junto con cambios en el proyecto principal.

He decidido probar los submódulos de Git para hacer la gestión. Cuanto más los pruebo, más frustrado me siento. Incluso parece que la copia manual es, quizás, mejor.

Estas son algunas de mis preocupaciones:

Ya no podemos obtener un estado de repositorio consistente con un solo comando (git checkout ahora necesitagit submodule update --init).No podemos usar algunas de las herramientas de Git correctamente (git archive es el más notable).No podemos ver los cambios / diferencias de estado en los submódulos del proyecto principal.Como acabo de encontrar de una manera difícil,git submodule no trabaja con--git-dir y--work-tree opciones, y requieren un cambio físico del directorio actual al "nivel superior del árbol de trabajo".

Parece que para agilizar nuestro flujo de trabajo de submódulos (que es una operación == un comando), tenemos que escribir una envoltura bastante gruesa alrededor de Git. Esto es triste.

Tenga en cuenta que no es una opción alejarse de Git o fusionar el desarrollo del subproyecto por completo en el proyecto principal.

Tal vez estoy usandogit submodules de una manera incorrecta? ¿Hay algún buen tutorial sobre el flujo de trabajo?

Por favor, hable aunque no sepa la respuesta correcta, pero comparta mis preocupaciones. :-)

Respuestas a la pregunta(2)

Su respuesta a la pregunta