¿Cómo uso Git para administrar mi código de module de Drupal personalizado que uso en varios sitios?

No estoy seguro de si esto pertenece correctamente aquí o en el sitio de Drupal StackExchange.

Trabajo como único desarrollador en una pequeña empresa. Tenemos varios sitios de Drupal 7. He creado varios modules personalizados que se utilizan en la mayoría de los sitios. Soy un novato relativo con git.

Los sitios están en git. La raíz de cada sitio es su propio repository. Casi todo excepto / sites / default / files está en git para cada sitio. Uso drush para actualizar los modules y núcleo de contrib y luego comprometo todos los cambios para ese sitio.

Parece una pregunta simple, pero me cuesta encontrar la respuesta (probablemente obvia).

¿Cómo estructurar las cosas para que pueda mantener mis propios modules personalizados en un lugar con su propio repository? En este momento, simplemente tengo múltiples copys de los modules personalizados en cada sitio. Se comprometen junto con el rest del sitio pero, por supuesto, esa no es la forma de hacerlo. El código del module se desincroniza entre sitios, etc. Obviamente, necesito trabajar en los modules en un solo lugar y extraer las actualizaciones en los sitios individuales.

¿Debo hacer un sitio que sea solo para el desarrollo de mi module personalizado y crear repositorys para cada uno de mis modules? Con esto me refiero a "git init directory_name" del directory de arriba donde mis modules son para convertir esos modules existentes en repositorys. A continuación, agregue, confirme, etc. y empújelo a mi repository remoto.

Estoy confundido acerca de lo que necesito en los sitios para poder instalar las actualizaciones. ¿Necesito submodules de Git en los sitios?

Gracias

Probablemente deberías configurar un repo master git para tus modules, mantenerlo en un server remoto en alguna parte (git hub, BitBucket, etc …). Entonces el flujo de trabajo sería algo como esto:

  1. Haga cambios en cualquiera de los sitios.
  2. Confirma los cambios
  3. Empuja los cambios al repository maestro.
  4. Extraiga los cambios de otros sitios que necesitan estos cambios.