Aplicando commits seletivamente
Entenda como aplicar seletivamente commits individuais de uma ramificação em outra usando `git cherry-pick`.
Aplicando commits seletivamente é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Movendo commits seletivamente
E se você precisar apenas de uma alteração específica de uma ramificação, e não da ramificação inteira? git cherry-pick permite aplicar um único commit de qualquer ponto do histórico do seu repositório diretamente à sua ramificação atual.
É como escolher uma única cereja de uma árvore! Isso cria um commit completamente novo na sua ramificação atual, duplicando as alterações do original.
Quando usar o cherry-pick
Imagine que você está trabalhando em uma grande ramificação de funcionalidade e descobre que uma correção crítica de erro feita nela também é necessária agora na sua ramificação principal de produção. Você ainda não quer mesclar toda a ramificação de funcionalidade.
Este é um cenário perfeito para usar cherry-pick. Ele ajuda a transportar alterações isoladas sem trazer trabalho não relacionado.
O comando básico
O comando fundamental é simples: git cherry-pick <commit-hash>.
- Primeiro, verifique se você está na ramificação onde deseja aplicar o commit.
- Depois, você precisará do identificador exclusivo (hash) do commit que deseja selecionar.
- O Git criará um novo commit com as mesmas alterações na sua ramificação atual.
git cherry-pick <commit-hash>Encontrando hashes de commits
Para usar cherry-pick, você precisa do hash! É possível encontrá-lo usando git log.
A opção --oneline é muito útil para obter uma visualização concisa:
git log --onelineConfigurando um cenário de cherry-pick
Vamos configurar um cenário simples. Criaremos uma ramificação main e uma ramificação feature/login. Faremos um commit em feature/login que queremos trazer para main.
Queremos trazer o commit "HOTFIX" para main.
git init my_project
cd my_project
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
git branch feature/login
git checkout feature/login
echo "Login feature added" >> login.txt
git add login.txt
git commit -m "Add basic login feature"
echo "Fix: Login button style" >> style.css
git add style.css
git commit -m "HOTFIX: Fix login button styling"Executando o cherry-pick
Agora, volte para a ramificação main e aplique o commit "HOTFIX". Suponha que o hash de "HOTFIX: Fix login button styling" seja abcdefg.
Depois de executar esse comando, um novo commit aparecerá na sua ramificação main com as mesmas alterações de abcdefg. Use git log --oneline para visualizá-lo!
git checkout main
git cherry-pick abcdefgLidando com conflitos de cherry-pick
Assim como na mesclagem, o cherry-pick pode causar conflitos se as mesmas linhas de código tiverem sido alteradas de maneiras diferentes nos dois históricos.
- O Git pausará a operação e marcará os arquivos conflitantes.
- Resolva manualmente os conflitos nos arquivos.
- Adicione os arquivos resolvidos com
git add. - Conclua com
git cherry-pick --continue.
# After resolving conflicts in editor:
git add .
git cherry-pick --continueSelecionando vários commits
Você pode fazer cherry-pick de mais de um commit por vez.
Para selecionar um intervalo de commits (de hashA até, mas sem incluir, hashB):
git cherry-pick hashA..hashBQuando usar (e quando não usar)
O cherry-pick é poderoso, mas deve ser usado com critério.
- Bom para: correções urgentes e transporte de pequenas alterações isoladas entre ramificações não relacionadas.
- Menos indicado para: integrar regularmente grandes conjuntos de alterações, pois isso pode gerar commits duplicados e dificultar o acompanhamento do histórico se não houver cuidado. Prefira mesclar ou fazer rebase para integrar uma ramificação inteira.
Verificação rápida: objetivo do cherry-pick
Você tem um commit na sua ramificação feature/new-design que corrige um problema crítico de estilo. Você precisa dessa correção imediatamente na sua ramificação main, sem mesclar toda a ramificação de funcionalidade.
Recapitulação: alterações direcionadas
Nesta lição, aprendemos sobre git cherry-pick, um comando útil para aplicar commits específicos à sua ramificação atual.
- Ele cria um novo commit com as mesmas alterações na ramificação de destino.
- É ideal para correções urgentes ou para transportar alterações isoladas.
- Você precisa do hash do commit, normalmente encontrado com
git log --oneline. - Esteja preparado para resolver conflitos, assim como na mesclagem.
Dominar o cherry-pick oferece um controle preciso sobre o histórico do seu projeto!
Perguntas Frequentes
A aula “Aplicando commits seletivamente” é grátis?
Sim — o texto completo de “Aplicando commits seletivamente” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Aplicando commits seletivamente”?
Entenda como aplicar seletivamente commits individuais de uma ramificação em outra usando `git cherry-pick`. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Aplicando commits seletivamente”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Resolução manual de conflitos de mesclagem
- Rebase interativo para o histórico
- Aplicando commits seletivamente
- Usando o Git Rerere para Reutilizar Resoluções de Conflitos