Por que padronizar commits é algo importante?
Tags: git, commit, padroes, braziliandevs
Published: 2021-08-28 22:29:27

Que atire a primeira pedra quem nunca usou um "corrige" ou "muda" ou ainda "correção" como mensagem de commit! E qual problema disso? É o que irei te mostrar em seguida!

O que é git para início de conversa?
------------------------------------

Pra quem não faz ideia do que estou falando, o commit faz parte do [git](https://pt.wikipedia.org/wiki/Git), um sistema de [controle de versão](https://www.atlassian.com/br/git/tutorials/what-is-version-control#:~:text=O%20controle%20de%20vers%C3%A3o%2C%20tamb%C3%A9m,fonte%20ao%20longo%20do%20tempo.), foi desenvolvido por Linus Torvalds para gerenciamento do código fonte do Linux. O git é bastante utilizado no desenvolvimento de software, embora você possa utilizá-lo para armazenar o progresso de qualquer outro arquivo ou documento que precisar.

Commits
-------

O git funciona num sistema baseado em árvore (tree), as alterações realizadas no código farão com que o tronco se desenvolva e caso algumas alterações tomem rumos diferentes, novos galhos poderão ser criados. Os commits são identificadores de tais alterações. É como se criássemos uma assinatura para cada alteração realizada e assim, com posse dessa assinatura, podemos facilmente voltar ou avançar no nosso código.

![Só consigo me lembrar do eterno Severino Cara Crachá](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hm5slz0bbqb837vxe1rs.gif)

Mensagens de commit
-------------------

Agora que já entendemos do que se trata o git e os commits podemos continuar. *Caso ainda tenha dúvidas você pode assistir a esse vídeo do canal [Código Fonte TV](https://www.youtube.com/c/codigofontetv):*

{% youtube za5KWZ5pRag %}

Vamos imaginar o seguinte cenário, você está trabalhando uma equipe e fica responsável por encontrar um bug. Pelas informações que colheram alguma coisa começou a dar errado há pelo menos três semanas! Os dados de uma certa categoria têm sumido sem um motivo aparente e pelos logs não foi possível encontrar o problema. Você dá um “git log” e se depara com algo como:

![commits](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1k8279gguwrtrpmd8itw.png)

Bem, nesse exemplo temos poucos commits, mas no mundo real isso poderia ser uma lista gigantesca! Porém, ao analisarmos a lista, percebemos o quão difícil é de tentar imaginar o que cada commit quer dizer. Agora, imagine-se nesse outro cenário:

![commits](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2alk3ydj2e3g8l73rnnq.png)

Bem, dessa forma já facilita a leitura e a compreensão do problema. Após uma lida você encontra alguns commits que podem estar relacionados ao problema e começa a investigá-los: “fix: corrige classe do usuário” e “fix: corrige função de renomear o usuário”. Após uma investigação detalhada você finalmente encontra o problema! Ao corrigir a classe do usuário, o Fulano acabou deixando algo pra trás e isso gerava o maldito bug!

-----

Bem, esse foi apenas um exemplo... no mundo real as coisas podem ser diferentes. Há muito o que aprender sobre o assunto, mas esse é um bom começo. No dia a dia tento deixar os meus commits mais descritivos possível, tento aplicar o [conventional commit](https://www.conventionalcommits.org/en/v1.0.0-beta.2/), caso queira comente logo abaixo que faço um post sobre ele também!

E aí, me conta! Você já faz isso no dia a dia ou ficou interessado em fazer? Comenta aqui pra eu saber!

Para saber mais...
-------------------

Deixo esse vídeo do canal do [Dev Soutinho](https://www.youtube.com/channel/UCzR2u5RWXWjUh7CwLSvbitA) no youtube:

{% youtube 1eTofdmfq1g %}