Como posso dividir o trabalho em uma ramificação sem conflitos na mesclagem?

5

Cenário:

Eu tenho uma ramificação produção (P) e minha ramificação atual (C) que criei para trabalhar em alguns novos recursos. Alguns deles estão prontos, no entanto, o trabalho no resto levará mais tempo do que o previsto.

Eu gostaria de enviar para a produção (e mesclar com produção (P) ramificação) recursos que estão prontos agora, e então continuar a trabalhar no resto deles na minha corrente ( C) sucursal.

Minha ideia:

Eu posso criar uma nova ramificação pré-produção (PP) , remover todas as referências ao código que não está pronto nele e mesclá-lo na ramificação production (P) . Então, continuarei trabalhando na ramificação current (C) e mesclando-a com produção (P) quando meu trabalho estiver pronto.

Problema:

Quando removo referências na ramificação pré-produção (PP) , haverá muitos conflitos mais tarde quando mesclar minha ramificação atual (C) com ramo de produção (P) . Eu tenho medo de perder alguma mudança importante no código. Como posso fazer melhor, evitando conflitos? Mesclar é o poder do Git, então minha suposição é que não sei algo importante.

    
por rsm 07.03.2017 / 22:56
fonte

1 resposta

4

Você cometeu um erro no seu fluxo de git e nada de elegante está lá para salvá-lo mais. Em vez de tentar remover material de uma ramificação criada a partir de C, a melhor solução é criar a ramificação PP de sua ramificação P e cherry-pick o ramo C no novo ramo PP.

git checkout production
git pull
git checkout -b pre_production
git cherry-pick ...

Por quê? No seu caso, você terá que passar por cima do código no branch C e, usando sua abordagem, você teria que decidir o que deve ser removido e o que deve ficar.

A solução para casos futuros, torna suas ramificações mais orientadas a recursos, assim você só pode mesclar os recursos que realmente deseja.

    
por 07.03.2017 / 23:16
fonte