Sobes.tech
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:

  1. Seleção do commit: O hash do commit que deseja "copiar" é determinado.
  2. Troca para o ramo alvo: Mudamos para o ramo onde as alterações devem ser aplicadas.
  3. 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 -n e depois git revert).

Diferenças de merge e rebase:

  • merge combina todas as alterações de um ramo para outro.
  • rebase transfere todos os commits de um ramo para outro.
  • cherry-pick transfere 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.