0Pricing
DevOps Bootcamp · Aula

Entendendo os hooks do Git

Explore os diferentes tipos de hooks do Git e os pontos em que são executados no fluxo de trabalho do Git.

Entendendo os hooks do Git é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 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.

O que são os ganchos do Git?

Boas-vindas aos ganchos do Git! Os ganchos do Git são scripts poderosos e personalizáveis que o Git executa automaticamente antes ou depois de eventos como criar commits, enviar alterações ou receber commits enviados.

Pense neles como pontos de verificação ou ações automatizadas no seu fluxo de trabalho do Git. Eles ajudam a impor padrões do projeto, automatizar tarefas e integrar outros sistemas.

Onde os ganchos ficam

Todo repositório Git vem com um diretório .git/hooks. Dentro dele, você encontrará scripts de exemplo de ganchos (geralmente terminados em .sample).

Para ativar um gancho, basta remover a extensão .sample e tornar o arquivo executável. O Git então o executará no momento apropriado.

  • Localização: .git/hooks/
  • Arquivos: scripts de Shell (Bash, Python, Ruby etc.)
  • Ativação: renomear e tornar executável

Do lado do cliente vs. do lado do servidor

Os ganchos do Git são classificados em dois tipos principais, com base no local onde são executados:

  • Ganchos do lado do cliente: são executados na sua máquina local (por exemplo, antes de criar um commit ou fazer uma rebase). Eles servem para automatizar o fluxo de trabalho pessoal e impor políticas locais.
  • Ganchos do lado do servidor: são executados no servidor Git remoto (por exemplo, quando você envia código para um repositório compartilhado). Eles impõem políticas do projeto para todas as pessoas.

Gancho do cliente: pre-commit

O gancho pre-commit é um dos ganchos mais comuns do lado do cliente. Ele é executado *antes* de o Git criar oficialmente um commit.

Se o script pre-commit terminar com um status diferente de zero, o Git cancelará o commit. Isso é perfeito para tarefas como:

  • Verificar o estilo do código (procurar erros de estilo)
  • Executar testes unitários
  • Verificar a existência de arquivos grandes ou dados confidenciais

Gancho do cliente: commit-msg

O gancho commit-msg é executado *depois* que você insere a mensagem do commit, mas *antes* de o commit ser finalizado.

Esse gancho é útil para garantir que as mensagens dos commits sigam convenções ou formatos específicos. Por exemplo, ele pode verificar se:

  • A mensagem começa com um ID de chamado (por exemplo, [JIRA-123])
  • O tamanho da mensagem está dentro dos limites
  • Palavras-chave específicas estão presentes ou ausentes

Gancho do cliente: post-commit

O gancho post-commit é executado *imediatamente depois* de um commit ser criado com sucesso.

Diferentemente de pre-commit ou commit-msg, esse gancho não pode alterar o resultado do commit. Ele é frequentemente usado para fins de notificação ou integração, como:

  • Notificar integrantes da equipe
  • Atualizar uma ferramenta de gerenciamento de projetos
  • Acionar uma compilação de integração contínua (CI), embora isso seja mais comum com ganchos do lado do servidor

Gancho do servidor: pre-receive

Passando aos ganchos do lado do servidor, pre-receive é executado antes de qualquer referência, como ramificações ou etiquetas, ser atualizada no repositório remoto.

Esse gancho é poderoso para impor políticas essenciais do repositório, como:

  • Impedir envios diretos para a ramificação main
  • Garantir que todos os commits sejam assinados
  • Validar a identidade de quem fez o commit

Se esse gancho terminar com um código diferente de zero, todo o envio será rejeitado.

Gancho do servidor: post-receive

O gancho post-receive é executado depois que um envio atualiza as referências no repositório remoto com sucesso.

Assim como post-commit, esse gancho não pode rejeitar o envio. Ele é normalmente usado para:

  • Acionar pipelines de integração e entrega contínuas
  • Atualizar sistemas externos de acompanhamento de problemas
  • Enviar notificações por e-mail à equipe
  • Implantar o código em um ambiente de preparação

Criando um gancho simples

Para criar um gancho, basta criar um arquivo com o nome do gancho, por exemplo, pre-commit, no diretório .git/hooks/. Vamos criar um bem básico:

#!/bin/sh

# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0

Tornando os ganchos executáveis

Depois de criar o script do gancho, você precisa torná-lo executável. Caso contrário, o Git não o executará. Use o comando chmod no seu terminal:

chmod +x .git/hooks/pre-commit

Agora, sempre que você tentar fazer um commit, o Git executará esse script!

Verificação rápida: momento de execução dos ganchos

Os ganchos do Git são executados em momentos específicos do seu fluxo de trabalho. Entender o momento de execução é essencial para usá-los com eficácia.

Recapitulação: entendendo os ganchos do Git

Você deu o primeiro passo no poderoso mundo dos ganchos do Git!

  • Os ganchos do Git são scripts que automatizam ações durante eventos do Git.
  • Eles ficam no diretório .git/hooks/ do seu repositório.
  • Os ganchos podem ser do lado do cliente (máquina local) ou do lado do servidor (repositório remoto).
  • Ganchos importantes, como pre-commit e pre-receive, podem impor políticas bloqueando operações.
  • Ganchos como post-commit e post-receive servem para notificações ou integrações após uma ação.

A seguir, vamos explorar exemplos práticos de implementação de ganchos específicos!

Perguntas Frequentes

A aula “Entendendo os hooks do Git” é grátis?

Sim — o texto completo de “Entendendo os hooks do Git” é 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 “Entendendo os hooks do Git”?

Explore os diferentes tipos de hooks do Git e os pontos em que são executados no fluxo de trabalho do Git. 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 1 de 4.

Quanto tempo leva a aula “Entendendo os hooks do Git”?

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

  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 DevOps Bootcamp