Skip to content

Instantly share code, notes, and snippets.

@jamessom
Last active February 24, 2024 21:59
Show Gist options
  • Save jamessom/8755667a801413dac734722c0052d533 to your computer and use it in GitHub Desktop.
Save jamessom/8755667a801413dac734722c0052d533 to your computer and use it in GitHub Desktop.
Dê um up nos seus commits!

Aperfeiçoe seus commits!

Sempre que falamos sobre o uso de ferramentas open source, é interessante buscar padrões que atendam ao seu fluxo de trabalho, pois na maioria das vezes essas ferramentas disponibilizam não só uma maneira de resolver um problema, mas sim uma gama de possibilidades. No caso específico do git, isso não é diferente.

Abaixo, veja algumas dicas para tornar o uso do git ainda melhor e garantir um padrão para o seu fluxo de trabalho.

Padronização e automação de ações no repositório

Antes de tudo, é importante ressaltar que as ferramentas descritas aqui são baseadas no padrão Conventional Commits. Essa ferramenta visa criar um padrão para que seja mais fácil e intuitivo ler os logs, entre outras vantagens.

commitlint

É uma ferramenta para verificação e validação de mensagens de commit, observando se estão no padrão de conventional commit.

Prós:

  • Ajuda a padronizar as mensagens de commit.
  • Facilita a geração de changelogs e releases automatizados.

Contras:

  • Acrescenta mais um processo a ser seguido.

É uma ferramenta open source que usa emojis para criação de mensagens de commit.

gitmoji

Prós:

  • É totalmente visual, segue o formato de formulário (preenchimento guiado) para criação da mensagem de commit.
  • É possível pesquisar antes de escolher o tipo.

Contras:

  • Altera a forma de criação da mensagem de commit, sendo necessário usar gitmoji em vez de git, ou criar um alias/hook.
  • Não realiza lint da mensagem de commit.

É uma ferramenta que torna a criação de commits algo mais "fancy" e intuitivo, criando prompts customizáveis, podendo ser usado para aplicação do conventional commits.

commitizen

Prós:

  • Ajuda na padronização de commits.
  • Torna mais intuitiva a criação de mensagens.
  • É altamente customizável.

Contras:

  • Acrescenta mais um processo a ser seguido.
  • A configuração pode ser complicada em alguns casos.

É uma ferramenta altamente customizável que, junto com o commitlint e commit-zen, torna possível a automação não só de commits, mas também de changelog e releases:

Prós:

  • Ajuda na automação de releases.
  • Evita possíveis erros associados à criação manual de releases.
  • É altamente customizável.

Contras:

  • É mais complexo adicionar em projetos que não seguem o padrão de semantic versioning.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment