Não passe vergonha: Aprenda o que é Cherry Pick

A treta

"É normal um senior experiente não saber lidar com Git? Fazer revert, Cherry pick, conflito de branch e essas coisas? Pq eu com 6 meses de estágio já sei" - tweet

O que é Cherry Pick

Começando pela tradução livre, cherry-pick, significa escolher a dedo, ou mesmo selecionar a melhor opção entre tantas outras. Ou seja, é uma opção para o merge ou mesmo o rebase.

De acordo com a própria documentação do Git:

Aplique as alterações introduzidas por alguns commits existentes; Dado um ou mais commits existentes, aplique a alteração que cada um introduz, registrando um novo commit para cada um.

Portanto, este comando permite que o usuário selecionar commits específicos de uma branch para a outra.

Quando usar?

Imagine o seguinte caso, você está trabalhando na branch de cadastro de administradores, e seu colega está trabalhando em uma outra branch relacionada a cadastro de usuários.

Nesse trabalho, seu parceiro acaba encontrando um problema que atinge vocês dois, e faz a correção, mas a task dele ainda está em andamento.

Sendo assim, você não pode fazer o merge, mas você precisa da correção.

O Cherry pick veio para nos ajudar nesse problema

-Git Cherry Pick: o que é e quando usar


Geralmente é usado quando precisamos de um pedaço de código que ainda não foi finalizado e devidamente revisado.

Como usar?

É simples:

1- Identifique o commit que você quer trazer, 2- Vá para branch de destino, 3- Rode o seguinte comando:

git cherry-pick f13bd3c3531f26e805c606729857f39987a2420f

Simples e prático, mas lembre-se: Só funciona se existir a cultura de pequenos commits!

E você, Quantas vezes já usou cherry pick ?

Interessante o artigo! É uma ferramenta útil para situações específicas, mas, honestamente, nunca precisei usar em um cenário real. Como você falou, é necessário uma cultura de pequenos commits, o que pelo menos onde passei, é bem raro de acontecer. Você fazer um check-pick para pegar algo de outra branch, quase sempre vai causar a vinda de outras coisas não desejadas nas experiencias que tive.

Exatamente. É necessário um time bastante maduro pra poder ter essa carta na manga.

check-pick muito interessante, me conformei com o rebase, talvés seje o momento de ver a possíbiliade de mudar um pouco. Valeu italosousa!

A treta continua:

Sênior: "ah vá... tenho mais o que fazer:

git push -f "

postei e saí correndo...

RAros são os casos que o desenvolvedor faz micro commits e primeiro corrige o bug para depois de fato passar a tratar a feature, na realidade ele a trata primeiro e no meio corrige algum bug (tudo junto) no commit, por isso pouco usei o recurso de cherry pick.