Supondo que eu sou o mantenedor de um repositório e desejo receber alterações de um colaborador, existem alguns fluxos de trabalho possíveis:
- I
cherry-pick
cada commit do controle remoto (em ordem). Nesse caso, o git registra a confirmação como não relacionada à ramificação remota. - I
merge
do ramo, puxando em todas as alterações, e adicionando uma nova "conflito" commit (se necessário). - I
merge
cada commit do branch remoto individualmente (de novo em ordem), permitindo que os conflitos devem ser registadas para cada commit, em vez de agrupados todos juntos como um só. - Para completar, você pode fazer um
rebase
(igual àcherry-pick
opção?), No entanto, meu entendimento é que isso pode causar confusão para o colaborador. Talvez isso elimine a opção 1.
Nos dois casos 2 e 3, o git registra o histórico de ramificações dos commit, diferente de 1.
Quais são os prós e contras entre o uso de um cherry-pick
ou dos merge
métodos descritos? Meu entendimento é que o método 2 é a norma, mas acho que resolver uma grande consolidação com uma única mesclagem de "conflitos" não é a solução mais limpa.