Cherry-pick

Explicação sobre o uso do git cherry-pick para aplicar commits de uma branch de feature (feature1) em outra branch de feature (feature2).

Quando usar

Use git cherry-pick quando você precisar de um ou mais commits específicos de uma branch de feature, mas não deseja incorporar todas as mudanças dessa branch.

Como usar

  1. Identifique o commit a ser cherry-picked: Primeiro, você precisa identificar o hash do commit que deseja aplicar. Você pode encontrar isso usando git log na branch de origem.

    git log

    O hash do commit é a sequência longa de caracteres (SHA-1) que identifica o commit, como a1b2c3d4.

  2. Checkout na branch de destino: Certifique-se de estar na branch onde deseja aplicar o commit. Por exemplo, se você quer aplicar o commit na branch feature2:

    git checkout feature2
  3. Cherry-pick o commit: Use o comando git cherry-pick seguido pelo hash do commit:

    git cherry-pick a1b2c3d4

    O Git aplicará as mudanças do commit especificado na branch atual.

  4. Resolver conflitos (se houver): Se houver conflitos durante o cherry-pick, o Git irá pausar o processo e pedir para você resolver esses conflitos manualmente. Depois de resolver os conflitos, você precisa adicionar os arquivos resolvidos e continuar com o cherry-pick:

    git add <arquivo_resolvido>
    git cherry-pick --continue

    Se decidir abortar o cherry-pick, você pode usar:

    git cherry-pick --abort

Exemplo Prático

Suponha que você tenha um commit específico na branch feature1 que deseja aplicar na branch feature2.

  1. Encontre o hash do commit desejado na branch feature1:

    Suponha que o hash do commit seja e5f6g7h8.

  2. Vá para a branch feature2:

  3. Aplique o commit usando git cherry-pick:

Benefícios

  • Precisão: Permite aplicar mudanças específicas sem trazer todo o histórico de uma branch.

  • Flexibilidade: Útil para correções rápidas ou quando apenas uma parte das mudanças de uma branch é necessária.

Limitações

  • Histórico não linear: Pode complicar o histórico de commits se usado em excesso.

  • Possíveis conflitos: Similar a merges e rebases, pode resultar em conflitos que precisam ser resolvidos manualmente.

O git cherry-pick é uma ferramenta poderosa para aplicar commits específicos de maneira seletiva, garantindo que você mantenha controle sobre as mudanças que são integradas em sua branch de feature.

Laboratório

Bug na sua branch de feature cuja correção está em outra branch de feature que não tenha sido atualizada na branch principal

Situação atual da branch principal:

Criação da branch feature-1 e arquivo a partir da branch principal:

Criação e commit do arquivo feature-1.txt:

Criação da branch feature-2, arquivo feature-2.txt e commit a partir da branch principal:

O commit 019b7318395a5897c7ae52b202b6006c67c64c38 da branch feature-2 possui a correção a ser aplicada na feature-1.

Cherry-pick

Last updated