Git: Como mesclar corretamente dois ramos funcionais e bastante diferentes?
Imagine uma situação em que você tem dois ramos do mesmo projeto, com uma parte do primeiro ramo dramaticamente refatorada sobre o outro. Mas por um tempo você precisa manter ambos os ramos funcionais, então você está fazendo correções de bugs e adições de recursos cruciais a ambos, às vezes de forma não simétrica. E em algum momento chega um momento em que você precisa fundir o branch refatorado no branch original. Qual é a melhor técnica para usar em uma situação como essa? Ainda é possível manter o histórico limpo?
Mas, mais importante, qual deveria ter sido minha estratégia inicial nesse cenário?