Como Utilizar Git Hooks?
access_time
hourglass_empty
person_outline

Como Utilizar Git Hooks?

Desenvolver uma aplicação de qualidade é um processo complexo. Para fazer isso, nós utilizamos ferramentas que são complementares ao processo de codificação.

Um desses processos é a automação. Isso ocorre devido à necessidade dos desenvolvedores e sysadmins (administradores de sistema) de reduzir o tempo de implementação. Git é uma das ferramentas mais populares específicas para essa finalidade.

E é por isso que, neste tutorial, nós iremos mostrar para você como utilizar Git Hooks para aprimorar o seu projeto de hospedagem em VPS!

Git Hooks é uma utilidade interna que vai melhorar a maneira como usamos o Git. Vamos aprender exatamente como ele funciona!

O Que é Git?

Antes de falarmos sobre Hooks, vamos entender rapidamente o que é Git.

Git é um software de código-aberto, de controle de versões de uma aplicação. Ao utilizá-lo, nós podemos monitorar o desenvolvimento de um software detalhadamente.

Git é muito popular entre desenvolvedores, e a maioria dos projetos de código aberto utilizam essa ferramenta.

O Que São Git Hooks?

Com o Git, nós podemos criar ramificações de desenvolvimento (chamados Git Branches), registrar modificações e ter um controle absoluto sobre as versões. Entretanto, é possível automatizar esse processo. A automação do Git funciona no nível dos programas e da implementação. É para isso que os Hooks são utilizados.

Git Hooks são shell scripts executados automaticamente antes ou depois que o Git execute um comando importante, como “Commit” ou “Push”. Para um Hook funcionar, é necessário que o script tenha permissões de execução no sistema Unix. Usando esses scripts, nós podemos automatizar algumas ações.

O Git inclui exemplos de Git Hooks assim que o repositório local é iniciado. Deve ser ressaltado que sites como o Github ou Gitlab não permitem o seu uso em primeira instância. É por isso que eles são usados principalmente em ambientes de desenvolvimento locais ou privados.

Como Usar Git Hooks

Hooks são armazenados na pasta .git/hooks/ para cada projeto copiado, ou em um repositório local recém criado. Lá, nós podemos encontrar uma série de exemplos de Hooks, os quais são ótimos pontos de partida.

Para ativar um Hook, é necessário apenas criar um arquivo e salvá-lo na pasta .git/hooks/. Entretanto, o nome do arquivo é pré-definido pelo Git. Muitos dos Hooks que podemos usar são:

Git HookComando Git Descrição
applypatch-msg.samplegit amQuando uma mensagem de patch é alterada.
commit-msg.samplegit commitPara definir uma mensagem de commit.
fsmonitor-watchman.samplelaunch watchmanPara integrar watchman.
post-update.samplegit pushAtualizar todos os dados após push.
pre-applypatch.samplegit amAntes de aplicar um patch.
pre-commit.samplegit commitAntes de executar um committing.
prepare-commit-msg.samplegit commitQuando uma mensagem commit for definida.
pre-push.samplegit pushAntes de realizar um envio.
pre-rebase.samplegit rebaseAntes de realizar um pass ou merge.
pre-receive.samplegit pushQuando executamos push e obtemos data do repositório remoto.
update.samplegit pushAo atualizar os dados remotos com push.

Como nós podemos ver, cada Hook é associado a um comando no Git. Com isso, podemos levá-los em consideração quando for conveniente fazer um Hook.

Exemplos de Git Hook

O uso de Hooks é muito amplo, mas ter conhecimento em Bash e outras linguagens ,como Python ou Ruby, são necessárias para usar com todo o seu potencial. Aqui estão alguns exemplos básicos:

Informações Sobre Ações de Commit

Esse exemplo nos mostra a informação de uma ação de Commit. Faça um arquivo chamado prepare-commit-msg dentro da pasta .git/hooks/ do seu repositório. Em seguida, escreva o seguinte script:

#!/bin/sh

SOB=$(git config github.user)
grep -qs "^$SOB" "$1" || echo ". Cambio por @$SOB" >> "$1"

Feito isso, salve e defina as permissões de execução para o arquivo:

:~$ chmod +x prepare-commit-msg

Com este simples Hook, nós receberemos informações relevantes para todas as ações de commits que forem feitas no repositório, instantaneamente.

Gerar documentação antes do envio das modificações

O comando Hook pre-push permite gerar a documentação do nosso código caso tenhamos um gerador instalado (no exemplo usamos o doxygen). Sempre que fizermos uma modificação, a documentação irá ser atualizada automaticamente.

Criar um um arquivo chamado pre-push na mesma pasta de antes (.git/hooks/) e adicionar o script:

#!/bin/bash

doxygen Doxyfile
git add docs/
git commit -m "Update documentation ($(date +%F@%R))"

Salve o arquivo na pasta e, em seguida, configure a permissão de execução:

:~$ chmod +x pre-push

Encontre e corrija os espaços em branco em Commits

Esse tipo de Git Hook de pre-commit é bastante simples de fazer. Basta criar um arquivo chamado “pre-commit” e adicionar o seguinte script:

#!/bin/bash -l

.git/hooks/pre-commit-master-no-no
if [[ $? == 1 ]]
then
exit 1
fi

.git/hooks/pre-commit-debugger
.git/hooks/pre-commit-trailing-spaces
.git/hooks/pre-commit-images
.git/hooks/pre-commit-pair

Agora os espaços em branco irão ser encontrados e corrigidos para todos os Commits.

Conclusão

O Git é uma ferramenta fundamental para os desenvolvedores de hoje em dia. A criação de Git Hooks é uma ótima maneira de aprimorar essa ferramenta ainda mais. Nesse tutorial, revisamos os conceitos fundamentais da automação de processos Git com Hooks.

Fazer um script para Git Hooks pode ser complicado se você não tiver uma base sólida de conhecimento de linguagem de programação, como Bash, por exemplo.

Você deu o primeiro passo na jornada de aprendizado para aprender como usar Git Hooks. Visite a documentação oficial do Git Hook e continue o seu processo de aprendizagem!

O Autor

Author

Ariane G. / @arianegoncalves

Ariane é SEO Manager na Hostinger Brasil e está há três anos na "casa" atuando com os times de conteúdo, localização e SEO. Formada em Comunicação Social com ênfase em Jornalismo, mantém o compromisso diário de contar para todo mundo o poder transformador da internet aqui, no blog da Hostinger.

Tutoriais relacionados

Author

Eduardo Morais Responder

maio 17 2020

Olá tudo bom, estou aprendendo agora esse conceito de hook e gostaria de saber, o que vc quis dizer com os sites GitHub e Gitlab não permitem o seu uso em primeira instância do hook?

    Author

    Andrei L.

    Respondeu em maio 26 2020

    Oi, Eduardo. Tudo legal? Significa que você só pode usar e fazê-los funcionar em ambientes de desenvolvimento, de programação ou de servidores. Fora destes locais, eles não têm muita utilidade, a não ser serem fontes de comandos para usuários usarem nos seus respectivos ambientes.

Deixe uma resposta

Comentário*

Nome*

Email*

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Faça parte da Hostinger agora!