Article image
Thallyta Castro
Thallyta Castro16/04/2022 13:24
Compartilhe

Commits semânticos - Como escrever uma boa mensagem de commit

  • #Programação para Internet
  • #GitHub
  • #Git

O comando git commit é um dos comandos principais do GIT e sem sombra de dúvidas é o que você mais vai usar ao longo de sua rotina como desenvolvedor.

Antes de mais nada, vamos entender o que esse comando faz.

A adição de commits acompanha nosso progresso e mudanças enquanto trabalhamos no nosso código. O Git considera cada commitponto de alteração do seu projeto, fazendo assim um histórico do seu trabalho ao longo do desenvolvimento.

Este comando deve ser usado logo após o adicionar os arquivos no repositório com git add e o commit sempre deve vir acompanhado de uma mensagem.

É aí que entra a parte de commits semânticos.

Commits semânticos são um modelo de padronização de commits dentro de um projeto ou de uma squad, mas nada te impede de usar em projetos pessoais, pelo contrário. Inserir boas práticas de versionamento de código desde o início, vai te fazer passar a frente de outras pessoas que não tem essa preocupação.

Uma boa mensagem de commit deve conter a descrição do que foi feito e para nos ajudar, podemos utilizar este padrão de escrita das mensagens.

Vou começar indicando os principais modelos, vale ressaltar que existe uma lista completa e uma documentação que pode ser consultada depois de ler este post. Você pode procurar por conventional commits.

Cada mensagem de confirmação consiste em um cabeçalho que é obrigatório, um corpo e um rodapé (estes são opcionais) . O cabeçalho tem um formato especial que inclui um tipo, um escopo e uma descrição:

<tipo>[escopo opcional]: <descrição> 
[corpo opcional] 
[rodapé(s) opcional(is)]

Vamos aos tipos:

  • fix - Commits do tipo fix indicam que seu trecho de código commitado está solucionando um problema (bug fix).
  • feat - Commits do tipo feat indicam que seu trecho de código está incuindo um novo recurso.
  • test - Commits do tipo test são utilizados quando são realizadas alterações em testes, seja criando, alterando ou excluindo testes unitários. (Não inclui alterações em código)
  • docs - Commits do tipo docs indicam que houveram mudanças na documentação, como por exemplo no Readme do seu repositório. (Não inclui alterações em código).

Commit semântico com tipo e descrição

**docs:** ortografia correta de CHANGELOG

Corpo do commit

corpo, como mencionado no "esqueleto do commit semântico" é opcional. É indicado utilizá-lo quando o detalhamento do seu commit irá ser maior que 7 palavras.

Commit semântico com corpo

**feat:** adicionado a nova estrutura de pastas do frontend

- Foi realizada uma mudança em toda a estruturação de páginas do projeto frontend,
pois agora iremos utilizar o modelo de Design Atômico

Escopo do cabeçalho opcional

O escopo do commit, é opcional, e é com ele que iremos informar qual parte do código foi modificado.

Commit Semântico com escopo e corpo

**fix(ProdutoApi):** retirando variável do path da API e ajustando loggers

- O path anterior tinha variáveis desnecessárias e não utilizadas por nenhum
consumidor

Rodapé opcional

O rodapé, assim como o escopo e descrição, são opcionais de serem informados. Nele geralmente são informados uma issue, id ou tasks de atividades, que foram utilizadas para realizar a alteração desse trecho de código commitado.

**fix:** corrige pequenos erros de digitação no código

- veja o ticket para detalhes sobre os erros de digitação corrigidos.

originado da issue JD#12.

Essas boas práticas no commit irão te auxiliar quando você precisar resolver um problema e/ou quando um colega de trabalho pegar aquele trecho de código feito por você, assim ele vai conseguir entender apenas olhando o que foi commitado.

Linkedin: https://www.linkedin.com/in/thallyta-castro/

Medium: https://medium.com/@thallyta-castro-cv

email: contato@thallytacastro.com.br

Github: https://github.com/thallyta-castro-cv

Compartilhe
Comentários (5)
Lucas Santos
Lucas Santos - 16/06/2022 00:50

Excelente artigo! Agregou muito, obrigado.

Aryan Gomes
Aryan Gomes - 29/04/2022 15:53

Para quem usa o VSCode, tem a extensão Conventional Commits (https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits) que pode ajudar nisso

Diogo Santos
Diogo Santos - 16/04/2022 13:29

Já vou colocar em pratica ... " PRECISOOOO" rsrs .


Obrigado !!!

Jonathas Araujo
Jonathas Araujo - 16/04/2022 13:24

Bom artigo.

Felipe Gomes
Felipe Gomes - 16/04/2022 13:33

Ajuda muito em especificar as alterações