Cómo organizar código / activos compartidos en proyectos con repositorios git

Tengo un escenario en el que el proyecto base consta de código java y archivos del sitio web (jsp / html / javascript, plantillas, css, imágenes, etc.).

Las variables de este proyecto base se crean por los siguientes motivos:

a) etiquetado blanco + personalización

b) Un nuevo proyecto basado en este proyecto pero con características adicionales (tanto en java como en archivos web)

Base project
Jav

src / core

we

plantilla

css

javascript

imágenes

Proyecto A (basado en la base)
Jav

src / core

src / projectA carpetas específicas

we

plantilla

css

javascript

imágenes

projectA carpetas específicas

Proyecto B (basado en la base)
Jav

src / core

src / projectB carpetas específicas

we

plantilla

css

javascript

imágenes

proyectoB carpetas específicas

Restricciones importantes

a) Tanto el proyecto A como el proyecto B comparten bastante código del proyecto base

b) Además de tener sus propios archivos y código, ProjectA y ProjectB podrían agregar, modificar o eliminar archivos en carpetas web / plantillas, web / css, web / imagen, para personalización y etiquetado blanco

c) Se podrían crear más proyectos como projectA y projectB en el futuro

d) Cuando se cambia el proyecto base, debería ser posible que los cambios se reflejen en los subproyectos

e) Ocasionalmente, los cambios realizados en el proyecto A / proyecto B a archivos comunes se deben volver a plegar en el proyecto bas

Inicialmente, pensé que tendría un repositorio git separado para el proyecto base y cada uno de los Proyectos A, B, etc. Pero teniendo en cuenta particularmente las restricciones anteriores, me parece que los enfoques git subtree o submodule no funcionan (por limitaciones obvias )

Así que tiendo a tener un único repositorio y usar un enfoque de "ramificación" donde projectA y projectB serán ramas y la base será el "maestro". ¿Qué tan bien funciona la restricción (e) en este enfoque?

¿Hay mejores formas de administrar esto en git?

Respuestas a la pregunta(2)

Su respuesta a la pregunta