Hooks pré-commit e pós-mesclagem
Implemente exemplos práticos de hooks pré-commit para análise de estilo e hooks pós-mesclagem para notificações.
Hooks pré-commit e pós-mesclagem é uma aula grátis de Git & GitHub Professional Workflow no CoddyKit. Esta é a aula 2 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 Git & GitHub Professional Workflow, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Git & GitHub Professional Workflow inclui 4 aulas no total.
Introdução prática aos ganchos do Git
Na lição anterior, aprendemos sobre os ganchos do Git e seus diferentes tipos. Agora, vamos praticar!
Vamos implementar dois ganchos poderosos: pré-commit e pós-merge. Eles permitem automatizar verificações antes de um commit e ações depois de uma mesclagem.
Pré-commit: sua barreira de qualidade
O gancho pre-commit é executado antes de uma operação de commit, mas depois que você usa git add para preparar suas alterações.
- Ele é perfeito para impor a qualidade e o estilo do código.
- Você pode usá-lo para executar analisadores de código, verificadores de estilo ou até mesmo testes unitários básicos.
- Se o script terminar com um status diferente de zero, o commit será cancelado automaticamente.
Isso garante que apenas código de alta qualidade e em conformidade entre no seu repositório.
Configurando o gancho de pré-commit
Para criar um gancho pre-commit, você precisa criar um arquivo executável chamado pre-commit dentro do diretório .git/hooks/ do seu projeto.
O Git fornece ganchos de exemplo com extensões .sample. Você deve remover essa extensão e adicionar seu script personalizado.
Lembre-se de tornar o arquivo executável usando: chmod +x .git/hooks/pre-commit
Exemplo: impedir commits com 'TODO'
Vamos criar um gancho simples de pre-commit que impede você de fazer commit de arquivos que ainda contenham a palavra "TODO". Essa é uma prática comum para garantir que nenhuma tarefa inacabada entre no seu código.
O script verificará todos os arquivos preparados em busca dessa palavra-chave. Se encontrá-la, interromperá o commit.
Gancho de pré-commit: nada de TODOs!
Aqui está um script simples de shell para o seu arquivo .git/hooks/pre-commit. Ele verifica a palavra "TODO" em arquivos .txt preparados.
Etapas:
- Crie
.git/hooks/pre-commit - Cole este código
- Execute
chmod +x .git/hooks/pre-commit
#!/bin/sh
# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
if grep -q "TODO" "$file"; then
echo "ERROR: Found 'TODO' in staged file: $file"
echo "Please remove TODOs before committing."
exit 1
fi
done
exit 0Testando seu gancho de pré-commit
Para testar este gancho, primeiro crie um arquivo, por exemplo, test.txt, e adicione "TODO: Finish this" a ele. Em seguida, tente fazer commit dele:
git add test.txtgit commit -m "Add test file"
O commit deverá ser cancelado, e você verá a mensagem de erro do seu gancho. Remova "TODO" de test.txt, e o commit será concluído!
Pós-merge: automatize ações após mesclagens
O gancho post-merge é executado automaticamente depois que um comando git merge é concluído com sucesso.
- Ele é útil para tarefas de integração que devem ocorrer depois que o código é combinado.
- Os exemplos incluem notificar membros da equipe, atualizar dependências do projeto, como em
npm install, ou executar um script de compilação. - Ao contrário do pré-commit, esse gancho não afeta o resultado da mesclagem.
É uma ótima maneira de automatizar processos posteriores à mesclagem.
Configurando o gancho de pós-merge
Assim como no caso de pre-commit, você cria um arquivo chamado post-merge dentro do diretório .git/hooks/.
Novamente, certifique-se de que ele seja um arquivo executável:
chmod +x .git/hooks/post-merge
Esse script será executado sempre que uma mesclagem for concluída no seu repositório.
Exemplo: alerta de conclusão da mesclagem
Vamos criar um gancho post-merge que simplesmente exibe uma mensagem no console, confirmando que uma mesclagem acabou de acontecer. Em um cenário real, ele poderia acionar um pipeline de integração e entrega contínuas ou enviar uma notificação para um aplicativo de bate-papo.
Gancho de pós-merge: notificação
Aqui está um script simples de shell para o seu arquivo .git/hooks/post-merge. Ele exibe uma mensagem de confirmação.
Etapas:
- Crie
.git/hooks/post-merge - Cole este código
- Execute
chmod +x .git/hooks/post-merge
#!/bin/sh
# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"
exit 0Verificação do gancho: pré-commit versus pós-merge
Qual das tarefas a seguir normalmente seria realizada por um gancho de pré-commit?
Recapitulação: ganchos em ação
Ótimo trabalho! Nesta lição, você aprendeu a implementar ganchos práticos do Git.
- Ganchos de pré-commit funcionam como uma barreira de qualidade, executando verificações, como análise de código ou testes, antes de um commit.
- Ganchos de pós-merge automatizam ações depois de uma mesclagem, como notificações ou atualizações de dependências.
Esses ganchos são ferramentas poderosas para impor padrões e automatizar fluxos de trabalho no seu repositório Git. Continue explorando outros tipos de ganchos para personalizar ainda mais sua experiência com o Git!
Perguntas Frequentes
A aula “Hooks pré-commit e pós-mesclagem” é grátis?
Sim — o texto completo de “Hooks pré-commit e pós-mesclagem” é 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 Git & GitHub Professional Workflow, atualize para CoddyKit PRO. O curso de Git & GitHub Professional Workflow inclui 4 aulas no total.
O que vou aprender em “Hooks pré-commit e pós-mesclagem”?
Implemente exemplos práticos de hooks pré-commit para análise de estilo e hooks pós-mesclagem para notificações. Você pratica Git & GitHub Professional Workflow 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 Git & GitHub Professional Workflow?
Nenhuma experiência prévia é necessária. Git & GitHub Professional Workflow 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 2 de 4.
Quanto tempo leva a aula “Hooks pré-commit e pós-mesclagem”?
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 Git & GitHub Professional Workflow?
Sim. Cada aula de Git & GitHub Professional Workflow 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
- Entendendo os hooks do Git
- Hooks pré-commit e pós-mesclagem
- Personalizando a configuração do Git
- Compartilhando Ganchos com Husky