0Pricing
Git & GitHub Professional Workflow · Aula

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:

  1. Crie .git/hooks/pre-commit
  2. Cole este código
  3. 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 0

Testando 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.txt
git 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:

  1. Crie .git/hooks/post-merge
  2. Cole este código
  3. 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 0

Verificaçã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

  1. Entendendo os hooks do Git
  2. Hooks pré-commit e pós-mesclagem
  3. Personalizando a configuração do Git
  4. Compartilhando Ganchos com Husky
← Voltar para Git & GitHub Professional Workflow