Sucursales de Common Code Base para files específicos de aplicaciones en GIT

Estoy tratando de determinar la mejor manera de tener múltiples productos de software basados ​​en la misma base de código común usando GIT.

Mi plan inicial era tener una sucursal maestra con el código / marco común y hacer que los diferentes productos se ramificaran de esto. Creo que a medida que se construye la base de código, cuando realizo una rebase, tomará más y más time hasta el punto en que pueda volverse engorroso. No sé cuán malo será pero podría ser un problema potencial.

¿Alguien tiene una mejor manera de hacer esto o es la mejor opción?

Yo recomendaría hacer fusiones en lugar de rebases. De esa forma solo tratarás con lo que sea que haya cambiado desde la última fusión.

La mejor opción, sin embargo, es modularizar su código para que no necesite twigs separadas.

Me gustaría ver el uso de un "submodule git" http://book.git-scm.com/5_submodules.html

Esto debería permitirle hacer del código común su propio repository y simplemente includelo en los otros proyectos como un submodule.

Es posible que desee aplicar este enfoque. Solo piense en la característica, el desarrollo, la versión y las twigs de revisión para que sean locales para cada producto. El maestro sería común para todos, lo que significa que las correcciones en el código compartido se enviarían al maestro y luego serían absorbidas automáticamente por los otros productos a medida que se repiten.

La diferencia entre lo que estás pensando actualmente y este es que hay un paso extra de fusión hacia el maestro que te obligará a lidiar con conflictos de forma regular lo que mantendrá la cantidad de conflictos que encuentres muy manejables.