Oi, Diogo! Tudo bem?
Peço desculpas pela demora em obter um retorno.
Ao realizar o cherry-pick
, na realidade, não estamos desatualizando a branch principal. Esse comando é utilizado quando desejamos trazer um commit específico de outra branch que está em desenvolvimento para a principal, sem passar pelo risco de realizar mesclagens que, no final, gerariam algum bug no projeto.
Por baixo dos panos, o cherry-pick
realiza apenas uma cópia do conteúdo e adiciona ao ponto mais recente da branch atual. Dessa maneira, podemos escolher qual commit melhor se adequa ao que desejamos e, além disso, abrimos portas para que mais pessoas atuem juntas na correção de algo.
Para compreender um pouco mais sobre o cherry-pick
, trouxe uma imagem que ilustra o seu funcionamento, observe:
Observe que, antes de executar o cherry-pick
, haviam os commits que foram feitos diretamente na “master” (first commit, second commit, third commit e fourth commit). Além disso, haviam os commits 1, 2, e 3, que só existiam na branch chamada “feature”.
Depois do cherry-pick
, o último commit da branch feature (o commit 3) passou a compor o histórico de commits da branch “master”. Inclusive, ele foi destacado por uma cor vermelha, como vimos na imagem. O fato de ter a mesma mensagem e estar ressaltado nos indica que houve uma cópia.
Como as duas branchs (”master” e “feature”) estavam atualizadas e sendo manipuladas concomitantemente, não houve uma desatualização.
Diogo, espero ter ajudado. Caso a dúvida persista ou surjam outras, fico à disposição para ajudá-lo.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.