Junior
O que é cherry-pick no contexto dos sistemas de controlo de versões?
sobes.tech IA
Resposta da IA
Cherry-pick no Git é uma operação que permite aplicar alterações de um commit específico a outro ramo. Isto é útil quando precisa transferir correções ou funcionalidades específicas de um ramo para outro sem transferir todos os commits subsequentes.
Aplicação:
- Seleção do commit: O hash do commit que deseja "copiar" é determinado.
- Troca para o ramo alvo: Mudamos para o ramo onde as alterações devem ser aplicadas.
- Execução do cherry-pick: Executa-se o comando
git cherry-pick <commit-hash>. O Git tentará aplicar as alterações do commit selecionado no ramo atual.
# Mudar para o ramo alvo
git checkout main
# Aplicar alterações do commit com hash abcdef1
git cherry-pick abcdef1
Cenários de uso possíveis:
- Corrigir um erro numa antiga versão de lançamento.
- Transferir uma funcionalidade específica do ramo de desenvolvimento para staging ou produção.
- Reverter alterações de um commit específico (usando a opção
-ne depoisgit revert).
Diferenças de merge e rebase:
mergecombina todas as alterações de um ramo para outro.rebasetransfere todos os commits de um ramo para outro.cherry-picktransfere apenas um commit selecionado, criando um novo commit com as mesmas alterações no ramo alvo.
É importante lembrar que o cherry-pick cria um novo commit com um hash diferente. Isto pode levar à duplicação de alterações se o mesmo commit for posteriormente unido ao ramo alvo de outra forma. Deve ser usado com precaução e compreensão das consequências.