Git: ¿Cómo fusionar correctamente dos ramas funcionales y bastante diferentes?

Imagine una situación en la que tenga dos sucursales del mismo proyecto, con una parte de la primera sucursal dramáticamente reformulada sobre la otra. Pero por un tiempo necesita mantener ambas ramas funcionales, por lo que está haciendo correcciones de errores y adiciones de funciones cruciales a ambas, a veces de forma no simétrica. Y en algún momento llega un momento en el que tiene que fusionar la rama refactorizada en la original. ¿Cuál es la mejor técnica para usar en una situación como esta? ¿Sigue siendo posible mantener la historia limpia?

Pero lo que es más importante, ¿cuál debería haber sido mi estrategia inicial en tal escenario?

Respuestas a la pregunta(2)

Su respuesta a la pregunta