Introdução ao GIT Cherry-pick
Neste artigo, vamos aprender sobre o GIT Cherry-pick em detalhes. Existem muitos programadores trabalhando no mesmo desenvolvimento de software de diferentes cantos do mundo. Então, como gerenciar os códigos? Como eles farão os outros entenderem as mudanças que fizeram? Como confirmar os códigos e manter versões diferentes? Como mesclar os códigos?
Para resolver esses problemas, o GIT entrou no mundo do desenvolvimento. O GIT é um excelente sistema de gerenciamento de código-fonte (SCM) e controle de versão distribuído. O GIT foi criado pelo Linux Torvald, a pessoa que desenvolveu o kernel do Linux. Obviamente, é uma ferramenta de código aberto onde todos os programadores podem contribuir para a construção de um software a partir de qualquer lugar do mundo.
O GIT tem muitos recursos. Pode ter vários ramos. Um desenvolvedor pode escrever códigos após criar sua própria ramificação no sistema local e mesclá-la com a ramificação principal ou outras ramificações do repositório GIT remoto.
O que é o GIT Cherry-pick?
Imagine, o trabalho do projeto está em andamento para escrever um roteiro sobre a história e evolução dos telefones celulares. Portanto, há muitas pessoas trabalhando no mesmo projeto e todas trabalhando separadamente. No entanto, no final, o script de todos será compilado juntos.
Agora, o membro A está escrevendo sobre os telefones da Apple e de repente percebe que pode ser melhor. Então, ele informou o assunto aos outros membros da equipe que estão trabalhando no mesmo projeto. Outro membro X disse a ele que estava escrevendo um script em telefones Android e pediu ao membro A para dar uma olhada.
O membro A examinou o script do companheiro de equipe e descobriu que algumas partes são iguais, com algumas mudanças realmente boas. Portanto, ele escolheu essas mudanças e colou em seu próprio script. É o mesmo que o cherry-pick chamou no GIT em matéria de indústria de codificação de software.
Git-cherry-pick é um poderoso comando git e cherry-picking é um processo para pegar um commit de um branch e aplicá-lo a algum outro branch. Em palavras simples, pode haver várias ramificações nas quais os desenvolvedores confirmam seus códigos. Agora, um desenvolvedor deveria confirmar seus códigos no ramo A, no entanto, ele confirmou os códigos no ramo B por engano. Nesse momento, o cherry-pick pode retornar o commit para a ramificação correta.
Use o comando abaixo (no sistema Unix) para conhecer diferentes opções para git-cherry-pick,
Comando:
$man git-cherry-pick
A sintaxe do comando cherry-pick,
Sintaxe:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Quando usamos o GIT Cherry-pick?
Git-cherry-pick é uma ferramenta útil, mas não é uma prática recomendada o tempo todo. O git-cherry-pick pode ser usado nos seguintes cenários,
- Corrigir quando um commit é feito em uma ramificação diferente acidentalmente.
- Mesclagens tradicionais preferíveis
- Para aplicar as alterações em uma confirmação existente.
- Confirmação duplicada
- Corrigindo erro
Como o GIT Cherry-pick funciona?
Um defeito encontrado no código no ambiente de produção e uma correção precisam ser implementados. Depois que a alteração é implementada e um defeito é corrigido, é hora de trazer essa alteração de código de volta ao ambiente de Desenvolvimento, para que o defeito não ocorra novamente no ambiente de Produção no futuro.
A primeira opção é uma mesclagem simples de git e é uma solução ideal se funcionar. No entanto, há outras alterações feitas no ambiente de produção e essas não podem ser trazidas de volta ao ambiente de desenvolvimento durante a mesclagem. E, nesse caso, escolher a cereja é a opção correta.
Cherry-pick traz o commit que foi feito apenas para correção de bugs. Não escolhe os outros commits.
Aqui está uma ilustração,
Fig 1: G e H são as confirmações do ramo Produção. A ramificação de Desenvolvimento de A a F confirma. Um problema foi encontrado na ramificação Produção. Uma correção é desenvolvida no commit H, que precisa ser aplicado no ramo Development, mas o commit G não precisa ser aplicado.
Fig 2: Agora o commit H é escolhido de maneira cereja no ramo Development e o commit resultante é H '. As alterações de confirmação G não são incluídas no ramo Desenvolvimento.
Como usar o GIT Cherry-pick com o exemplo?
Suponha que tenhamos dois ramos (master e new_feature) (comando usado para ver o ramo branch-git)
Fizemos o commit (Highlighted) no ramo new_feature por engano. (comando usado para ver o log logs-git confirmado)
No entanto, ele deveria estar apenas no ramo mestre. Primeiro copie o SHA realçado em um bloco de notas.
Agora usaremos um comando git-cherry-pick para mover esse commit para o branch master, porém antes disso precisamos mudar para o branch master (comando usado para alternar o branch-git checkout < branchname > )
Agora podemos ver que o mesmo commit está disponível no branch master (comando used-git log)
Para obter mais exemplos de comandos git cherry-pick, consulte o link abaixo,
https://git-scm.com/docs/git-cherry-pick
Coisas importantes a lembrar
Três coisas precisam ser lembradas ao usar a seleção de cerejeira e trabalhar em equipe.
1. Mensagem de confirmação padronizada: É melhor usar a mensagem de confirmação padronizada e -x se escolhermos de um ramo público.
git cherry-pick -x
Isso evitará a fusão de conflitos no futuro.
2. copie as anotações: algumas vezes, algumas das opções de escolha da cereja têm notas e, quando executamos a opção de escolha da cereja, as notas não são copiadas. Portanto, é melhor usá-lo.
git notes copy
3. Selecione vários commits quando forem lineares: queremos selecionar múltiplos commits como G, H (Fig 1), se forem lineares, use apenas o comando abaixo,
git cherry-pick G^..H
Conclusão
Suponha que desejamos escolher um commit específico de um ramo diferente e aplicar ao ramo atual. Aqui estão as etapas recomendadas,
1. Encontre o hash de confirmação que precisa ser escolhido primeiro.
2. Vá para o ramo de destino.
3. git cherry-pick -x
Resolva os conflitos se eles acontecerem. Se houver notas no commit original, elas precisam ser copiadas.
git notes copy
Artigos recomendados
Este é um guia para o GIT Cherry-pick. Aqui discutimos seu funcionamento e como usar o git cherry-pick com exemplos em detalhes. Você também pode consultar os seguintes artigos para saber mais -
- Ferramentas Git
- Terminologia Git
- Tag de check-out do Git
- O que é o Git Branch?