Um commit atômico é um commit que tem apenas um objetivo (corrigir, implementar ou refazer algo), que está 100% pronto e que todos os seus arquivos estejam dentro do mesmo contexto.
Uso de convenções para nomes de commits.
Define um conjunto de regras para criar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas.
tipo: descrição(e.g.,feat: adiciona função de login).
fix: um commit do tipo fix soluciona um problema na sua base de código.
feat: um commit do tipo feat inclui um novo recurso na sua base de código.
BREAKING CHANGE: inclui uma modificação que quebra a compatibilidade da API. Uma BREAKING CHANGE pode fazer parte de commits de qualquer tipo.
Outros: tipos adicionais são permitidos além de fix: e feat:, por exemplo @commitlint/config-conventional (baseado na Convenção do Angular) recomenda-se chore:, docs:, style:, refactor:, perf:, test:, entre outros.
Clareza: Facilita a leitura e compreensão do histórico.
Automação: Integração com ferramentas como release notes automáticas.
Os softwares que utilizam versionamento semântico utilizam um padrão numérico dividido em três posições, como no exemplo: 5.8.15.
São as chamadas breaking changes, atualizações que possuem o potencial de “quebrar” códigos que utilizam versões anteriores.
4.x.x → 5.x.x
O segundo dígito informa a versão da funcionalidade, onde uma nova função ou melhoria substancial é adicionada e não há problemas de incompatibilidade com outras versões.
5.1.x → 5.2.x
O terceiro dígito informa a versão da correção de bugs, melhorias de desempenho ou alterações similares que não alteram as funcionalidades atuais e nem introduzem novas.
5.2.0 → 5.2.1
Existem 12 regras que definem o SemVer e elas estão documentadas oficialmente em: https://semver.org/lang/pt-BR/. Mas também há esse artigo no iMasters muito bem explicativo: https://imasters.com.br/codigo/versionamento-semantico-o-que-e-e-como-usar.
Um changelog é um arquivo que contém uma lista selecionada, ordenada cronologicamente, de mudanças significativas para cada versão de um projeto.
Commits atômicos e semânticos garantem clareza e organização.
Ferramentas como Keep a Changelog e SemVer se beneficiam dessas práticas.
O uso de release notes automáticas depende da qualidade das mensagens de commit.
Adotar essas práticas melhora a organização, a comunicação e a eficiência no desenvolvimento.
Convite para adoção das práticas no projeto.