Diego França

GIT- Conventional Commits

Faaala galera, blz? Hoje venho com uma dica sobre como ter padrão nas mensagens de commits em nossos projetos. As vezes quando se tem mais de um desenvolvedor no projeto e a correria do dia a dia acabamos que as mensagens não ficam tão legais. É muito comum ter os famosos “AD” (Alterações diversas) ou o “VA” (Várias alterações), com isso dificulta muito a nossa vida de dev, que já não é fácil :D.

O Conventional commit foi inspirado no  Angular Commit Guidelines, nos fornece um conjunto de regras para criação de um histórico de commits; o que torna mais fácil de escrever com ferramentas automatizadas. Essa convenção se encaixa com o Sem Ver, descrevendo recursos, correções e alterações importantes feitas.

A mensagem de commit deve ser estruturada da seguinte maneira:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

O commit contem os elementos estruturais , para comunicar a intenção de quem consumir sua biblioteca:

  1. Fix: um commit do tipo fix corrige um bug em sua base de código(isso se correlaciona com PATCH no controle de versão semântico);
  2. Feat: O tipo de commit feat introduz um novo recurso para a base de código (Isso se correlaciona com o MINOR no versionamento semântico).
  3. BREAKING CHANGE: Esse tipo de commit que tem o o rodapé BREAKING CHANGE ou anexado o ! após o tipo/ escopo introduz uma alteração de API de interrupção(Correlacionado com o MAJOR no controle semântico). A BREAKING CHANGE pode ser parte de commits de qualquer tipo
  4. Tipos diferentes de fix e feat são permitidos, como por exemplo @commitlint/config-conventional  recomenda build:, chore:, ci: docs:, style:, refactor:, perf: test:, e outros.

INSTALANDO O GIT COMMIT MSG LINTER

Para nossa sorte alguns desenvolvedores criaram um package que nos ajuda a manter o padrão de commit de forma automática.

Para nosso teste irei utilizar o package git-commit-linter

Irei criar um projeto simples para testarmos o plugin. Crie um diretório com o o nome commit-conventional:

mkdir commit-conventional

Após executar o comando acima entre no dirétorio:

cd commit-contenvencional

Temos que inicializar o git :

git init

Agora vamos criar o arquivo package.json, para isso execute o comando, você tem quer o nodejs instalado em sua máquina :

npm init -y

Agora que temos o nosso package.json criado, vamos instalar o package:

npm install git-commit-msg-linter --save-dev

Crie um arquivo de texto qualquer:

touch teste.php

Vamos adicionar as mudanças na nossa stage área:

git add .

Se você ainda possui dificuldades com os comandos do git clique aqui que explico alguns comandos básicos.

Para fazermos o teste execute:

git commit -m 'ADD a new file in project'

Será gerado o erro como na imagem abaixo, mostrando que o nosso commit está fora do padrão

Agora vamos commitar novamente mas agora seguindo o conventional commits:

git commit -m "feat: add new file into project"

Agora sim, tudo perfeito com o nosso commit , você pode ver o log do commit fica muito mais claro e organizado nossas mensagens de commit

Espero que tenha gostado dessa dica. Caso possui alguma dúvida ou sugestão ou crítica deixe nos comentários

FONTE:

https://www.conventionalcommits.org/en/v1.0.0/

https://www.npmjs.com/package/git-commit-msg-linter