¿Cuál es un buen process para administrar líneas de código persistentes en git?

Mantengo tres líneas de código para cada proyecto: 'master' para el último desarrollo, 'test' para estabilización y 'prod' para código en vivo, más cualquier twig de característica.

Periódicamente, quiero reflejar todos los cambios de una twig a otra. Por supuesto, empujar al maestro a la testing para comenzar a estabilizarse para una nueva versión. O empujando la testing a prod para hacer la versión estable en vivo. Pero también, para llevar las correcciones de errores de la testing al maestro o incluso a veces de prod a testing (en el caso de una revisión urgente). También hay algunos cambios específicos de twig, como URL y keys. Git es maravilloso, y no me puedo imaginar el time que me ha salvado de otros sistemas. Pero no estoy seguro de cómo hacerlo sin tener problemas de vez en cuando.

Eliminar y volver a crear estas tres twigs "primarias" no es práctico porque respaldan los entornos de la nube y porque tenemos desarrolladores distribuidos. De manera similar, el rebase es problemático porque cada una de las twigs se comparte, y los cambios se realizan desde cada una de ellas. Me he estado fusionando en ambas direcciones, como lo hice con otros sistemas de control de versiones como Perforce: fusionar arreglos de testing en maestro, luego desarrollo nuevo de maestro en testing. Pero eso ha causado serios problemas que no entiendo completamente.

¿Cómo recomendaría administrar estas twigs para que los cambios de cada uno se reflejen en los demás?

Gracias de antemano por sus pensamientos!

Nunca encontré este tipo de "convención de nomenclatura fija" funcionando bien para la twig de integración y la twig de prod, especialmente después de la primera versión en producción.

Siempre tiendo a nombrar esas dos twigs después del lanzamiento actual que estoy desarrollando ( test_1.0 y prod_1.0 , o test_2.3 y prod_2.3 , y así sucesivamente).
Eso limitará el scope de las fusiones (en el sentido de que claramente son para un lanzamiento específico, y estoy seguro de que no tengo en esas twigs algún desarrollo mezclado por error de otro lanzamiento).

Si desea tener solo una twig 'actual de desarrollo' ( master en su caso), debe asegurarse de reiniciar dicha twig master al comienzo de cada nueva versión.
Una merge --theirs de prod_x.y al master pueden ayudar, excepto merge --theirs no existen. Sin embargo, hay forms de simular tal fusión .