Git cherry pick illo

Cherry-pick do Git

O git cherry-pick é um poderoso comando que permite que commits de Git arbitrários sejam coletados como referência e anexados ao HEAD de trabalho atual. "Cherry picking" é o ato de selecionar um commit da ramificação e fazer a aplicação a outra. O git cherry-pick pode ser útil para desfazer alterações. Por exemplo, digamos que o commit seja feito sem querer na ramificação errada. É possível alterar para a ramificação correta e fazer o cherry-pick do commit para onde ele deveria pertencer.

Quando usar o git cherry pick

O git cherry-pick é uma ferramenta útil, mas nem sempre a melhor prática. O cherry picking pode causar commits duplicados, e, em muitos cenários onde o cherry picking funcionaria, o uso das tradicionais mesclagens é preferido. Mesmo assim, o git cherry-pick é uma ferramenta útil para alguns cenários...

Colaboração em equipe.

Muitas vezes, uma equipe tem membros individuais trabalhando no mesmo código ou em torno dele. Talvez um novo recurso do produto tenha um componente de back-end e front-end. Pode haver algum código compartilhado entre dois setores do produto. Talvez o desenvolvedor de back-end crie uma estrutura de dados que o front-end também vai precisar utilizar. O desenvolvedor de front-end pode usar o git cherry-pick para colocar o commit no qual essa estrutura de dados hipotéticos foi criada. Assim o desenvolvedor front-end poderia continuar o progresso no lado do projeto.

Hotfixes de bugs

Quando um bug é descoberto, é importante disponibilizar uma resolução aos usuários finais o mais rápido possível. Por exemplo, digamos que um desenvolvedor começou a trabalhar no novo recurso. Durante esse desenvolvimento do novo recurso, ele identificou um bug preexistente. O desenvolvedor cria o commit explícito corrigindo esse bug. Esse novo commit de correção pode, por meio do cherry picking, ser passado direto para o branch principal para solucionar o bug antes que este afete mais usuários.

Desfazer alterações e restaurar commits perdidos

Como usar o git cherry pick

Para demonstrar como usar git cherry-pick, vamos supor que a gente tenha um repositório com o seguinte estado de ramificação:

    a - b - c - d   Main
         \
           e - f - g Feature

O uso do git cherry-pick é bem simples e pode ser executado como:

git cherry-pick commitSha

Neste exemplo, commitSha é uma referência de commit. Você pode encontrar uma referência de commit usando o git log. Neste exemplo, suponha que a gente usar o commit "f" no branch principal. Em primeiro lugar, é preciso ter certeza de que a gente está trabalhando no branch principal.

git checkout main

Então, executamos o cherry-pick com o seguinte comando:

git cherry-pick f

Após a execução, o histórico do Git vai se parecer com:

    a - b - c - d - f   Main
         \
           e - f - g Feature

The f commit has been successfully picked into the master branch

Exemplos de cherry-pick do git

O git cherry pick pode também receber algumas opções de execução.

-edit

Passar a opção -edit vai fazer com que o git solicite a mensagem de commit antes de aplicar a operação de cherry-pick

--no-commit

A opção --no-commit vai executar o cherry-pick, mas, em vez de fazer o novo commit, ela vai mover o conteúdo do commit alvo para dentro do diretório de trabalho da ramificação atual.

--signoff

Resumo