Boas práticas de ramificação / reestruturação do Git
Eu tenho um seguinte cenário:
3 ramos:
- Mestre
- MyBranch ramificou o Master com o objetivo de desenvolver um novo recurso do sistema
- MyBranchLocal ramificou MyBranch como minha cópia local da filial
O MyBranch está sendo reprovado e pressionado por outros desenvolvedores (que estão trabalhando no mesmo recurso que eu).
Como proprietário da ramificação MyBranch, quero mantê-la sincronizada com o Master, reestruturando. Também preciso mesclar as alterações feitas no MyBranchLocal com o MyBranch.
Qual é uma boa maneira de fazer isso?
Alguns cenários possíveis que eu tentei até agora:
EU.
1. Confirme a alteração no MyBranchLocal
2. Rebase MyBranch contra Master
3. Rebase MyBranchLocal contra MyBranch
4. Mesclar MyBranch com MyBranchLocal
II
1. Confirme a alteração no MyBranchLocal
2. Mesclar MyBranch com MyBranchLocal
3. Rebase MyBranch contra Master
4. Rebase MyBranchLocal contra MyBranch
III
1. Confirme a alteração no MyBranchLocal
2. Rebase MyBranch contra Master
3. Mesclar MyBranch com MyBranchLocal
4. Rebase MyBranchLocal contra MyBranch
Eu já sei que o cenário III parece estar atrapalhando muito o histórico de consolidação, potencialmente duplicando as confirmações.
Qual a sua experiência? Quais cenários você recomenda para minimizar o esforço de fusão e manter o histórico limpo?