Sobes.tech
Junior

O que é cherry-pick?

sobes.tech IA

Resposta da IA

git cherry-pick é usado para transferir um ou mais commits de um ramo para outro.

Princípio de funcionamento:

  1. Seleciona o commit (ou commits) especificado no ramo de origem.
  2. Aplica as alterações contidas nesses commits ao ramo ativo atual.
  3. Cria novos commits no ramo atual com as mesmas alterações e mensagens que os commits originais.

Quando usar:

  • Transferir uma correção específica de erro de um ramo (por exemplo, produção) para outro (por exemplo, desenvolvimento), sem afetar outras alterações.
  • Aplicar alterações de um ramo de funcionalidades para outro, sem fundi-los completamente.
  • Cancelar merges incorretos mantendo os commits individuais.

Diferenças de merge e rebase:

  • merge: Une toda a história de alterações de um ramo em outro.
  • rebase: Reescreve a história dos commits, movendo-os para uma nova base.
  • cherry-pick: Aplica apenas os commits selecionados, criando novos e sem alterar a história dos commits originais.

Comando principal:

# Transferir um commit
git cherry-pick <commit-hash>

# Transferir vários commits (na ordem de sua indicação)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Exemplo:

Suponha que existam duas branches: main e feature. Na branch feature, foi feito um commit fix-typo. É necessário transferir esse commit para a branch main.

# Mudar para a branch de destino
git checkout main

# Executar cherry-pick usando o hash do commit da branch feature
git cherry-pick 7f3bca2 # Exemplo de hash de commit

Após executar o comando, na branch main aparecerá um novo commit com as mesmas alterações de fix-typo, mas com um hash diferente.