O Que É um Pre-Commit Hook?
Um pre-commit hook é um script que roda automaticamente antes de um commit ser registrado, bloqueando o commit se uma verificação falhar.
O Git pode executar scripts em determinados pontos do seu fluxo de trabalho. Um pre-commit hook dispara logo antes de um commit ser criado, então você pode aplicar lint, formatar ou rodar verificações rápidas localmente - capturando problemas antes que cheguem ao repositório compartilhado ou ao CI.
Como os hooks funcionam
O Git procura scripts executáveis em um diretório de hooks; o hook pre-commit roda sobre as alterações no stage, e um exit não-zero bloqueia o commit. Frameworks como a ferramenta pre-commit gerenciam esses hooks de forma declarativa em toda a equipe.
Um pequeno exemplo
Um .pre-commit-config.yaml que lista um formatador e um scanner de segredos roda essas ferramentas nos arquivos em stage no momento do commit. Se o formatador reescrever um arquivo ou o scanner encontrar uma chave, o commit é bloqueado até você corrigir.
O que rodar em um
- Formatadores e linters rápidos nos arquivos em stage.
- Scanners de segredos para impedir que credenciais sejam commitadas.
- Verificações rápidas e direcionadas - não a suíte de testes completa.
Hooks complementam, não substituem, o CI
Os hooks rodam localmente e podem ser pulados (git commit --no-verify), então não podem ser o único gate. Eles encurtam o ciclo de feedback; o CI é o gate autoritativo que roda as mesmas verificações onde elas não podem ser contornadas.
Mantenha-os rápidos
Um hook lento é um hook que as pessoas desabilitam. Rode apenas verificações rápidas nos arquivos em stage e deixe a suíte pesada para o CI - o hook deve adicionar segundos, não minutos, a um commit.
Principais conclusões
- Um pre-commit hook executa verificações localmente antes de um commit ser criado.
- Use-o para linting rápido, formatação e escaneamento de segredos.
- Os hooks encurtam o feedback, mas o CI continua sendo o gate inescapável.