Trabalhando com Git Hooks de forma fácil

Neste post, exploramos o que são Git Hooks, como funcionam, e como utilizar a biblioteca Husky para configurar e manter hooks de forma simples e eficiente.


Introdução

O Git é uma ferramenta poderosa e essencial para qualquer desenvolvedor, permitindo o controle de versão e a colaboração eficiente em projetos. Um recurso frequentemente subutilizado do Git são os Git Hooks, que permitem a automação de tarefas comuns e a personalização do fluxo de trabalho. Neste post, vamos explorar o que são Git Hooks, como eles funcionam e como podemos utilizá-los de forma fácil com a ajuda da biblioteca Husky.

Git Hooks

Git Hooks são scripts executados automaticamente em determinados pontos do ciclo de vida do Git. Esses scripts podem ser utilizados para realizar diversas tarefas, como verificar o código antes de um commit, rodar testes automatizados, formatar código, entre outros. Os hooks são definidos localmente no repositório Git e podem ser personalizados para atender às necessidades específicas do projeto.

Como funciona

Os Git Hooks são armazenados na pasta .git/hooks de cada repositório. Existem diversos hooks disponíveis, como pre-commit, pre-push, commit-msg, entre outros. Cada um desses hooks corresponde a um evento específico do Git e pode ser configurado com um script que será executado quando esse evento ocorrer. Por exemplo, o hook pre-commit é executado antes de um commit ser realizado, enquanto o pre-push é executado antes de um push ser enviado ao repositório remoto.

Para configurar um hook, basta criar um arquivo na pasta .git/hooks com o nome do hook desejado (por exemplo, pre-commit) e torná-lo executável. Dentro desse arquivo, podemos escrever o script que queremos que seja executado quando o hook for acionado.

Utilizando o Husky

Configurar Git Hooks manualmente pode ser uma tarefa tediosa e propensa a erros, especialmente em equipes grandes onde todos os desenvolvedores precisam ter os mesmos hooks configurados. Para simplificar esse processo, podemos utilizar o Husky, uma biblioteca que facilita a configuração e a manutenção dos Git Hooks.

Instalando o Husky

Para começar a usar o Husky, primeiro precisamos adicioná-lo ao nosso projeto. Podemos fazer isso usando o npm ou o yarn:

npm install husky --save-dev
# ou
yarn add husky --dev

Configurando o Husky

Após instalar o Husky, precisamos configurá-lo para ativar os Git Hooks. Podemos fazer isso adicionando um script de post-install no nosso package.json:

{
  "scripts": {
    "prepare": "husky install"
  }
}

Agora, podemos adicionar nossos hooks usando comandos do Husky. Por exemplo, para adicionar um hook pre-commit que roda o ESLint, podemos usar o seguinte comando:

npx husky add .husky/pre-commit "npx eslint ."

Isso criará o arquivo .husky/pre-commit com o comando especificado. Sempre que fizermos um commit, o ESLint será executado automaticamente, garantindo que nosso código esteja sempre formatado e livre de erros

Conclusão

Os Git Hooks são uma ferramenta poderosa para automatizar e personalizar o fluxo de trabalho no Git. Embora a configuração manual possa ser complexa, bibliotecas como o Husky tornam esse processo muito mais simples e eficiente. Ao utilizar o Husky, podemos garantir que todos os desenvolvedores da equipe tenham os mesmos hooks configurados, melhorando a consistência e a qualidade do código no projeto. Experimente incorporar Git Hooks e Husky no seu fluxo de trabalho e veja a diferença que eles podem fazer!