Múltiples proyectos en un repository de Git

Tengo un proyecto principal (una aplicación web) que tiene varios services relacionados que lo acompañan.

Todos estos services leen la database del proyecto principal, por lo que es esencial que cada vez que se cambie el esquema db, todos los proyectos se actualicen. A veces, cuando se agrega una function nueva al núcleo, también se deben cambiar algunos de los services, pero a menudo este no es el caso. Estos services están estrechamente integrados con el esquema DB y no son reutilizables en otras aplicaciones.

Además, hay otro proyecto que es simplemente un skin de la aplicación nativa del SO en el proyecto de la aplicación web central con un set de características ligeramente networkingucido (por lo que no es cierto que una nueva característica incluida en la aplicación web principal deba aparecer en la aplicación nativa). Sin embargo, sin duda tendrá que actualizarse siempre que ocurra un cambio de esquema db.

¿Cuál es la forma recomendada de estructurar un repository (s) de git en torno a un proyecto como este? Estaba pensando que el proyecto central y los services deberían existir en un repository juntos, pero luego se siente raro tener también la aplicación nativa allí (por esa lógica, cuando tenemos una aplicación para iPad, ¿eso también iría allí? Parece un gran repository desorderado en ese momento).

Una cosa a tener en count es que quiero mantenerme alejado de cualquier flujo de trabajo complejo ya que muchas personas no están familiarizadas con git.

Una cosa a tener en count es que quiero mantenerme alejado de cualquier flujo de trabajo complejo ya que muchas personas no están familiarizadas con git.

En ese caso, francamente, sugiero que guardes todo en el mismo repository. Mientras que los submodules se han vuelto más fáciles de usar a medida que git ha seguido desarrollándose, todavía son una fuente muy común de confusión para las personas que son nuevas en git.

Si tiene cuidado de excluir files binarys generados y grandes de su repository, probablemente apenas note el espacio / ancho de banda adicional utilizado al tener un repository que también contenga la aplicación de iPad, etc., ya que el almacenamiento de objects de git es muy eficiente.