Git Commit: Conhecendo a alquimia do Conventional Commits
- #Git
O que é Git Commit?
No universo de Fullmetal Alchemist, a alquimia é como uma mágica que os alquimistas usam para mexer com coisas como transformar objetos, curar e até controlar elementos. Da mesma forma, na programação, o git commit é uma ferramenta poderosa que os programadores usam para controlar e registrar as mudanças que fazem no código-fonte de um projeto.
De forma geral, o desenvolvedor começa executando o comando git add para incluir as mudanças no stage, e então realizar o commit, como no exemplo que vemos a seguir:
git add .
git commit -m "commitando"
No exemplo acima, o comando pode até estar correto, mas você consegue dizer o que foi modificado no código-fonte lendo essa mensagem de commit? Com certeza não, pois ela é muito vaga e, para resolver isso, adotamos o Conventional Commits.
Conventional Commits
Assim como os alquimistas seguem regras e procedimentos específicos para realizar uma transmutação, os desenvolvedores também seguem padrões de commits para documentar suas alterações de código. O Conventional Commits é uma abordagem que ajuda os desenvolvedores a criar mensagens de commit significativas, facilitando a compreensão das alterações feitas no código-fonte por outros membros da equipe.
Este padrão segue uma estrutura clara: um prefixo específico (tipo) seguido por um escopo opcional, um espaço em branco, uma mensagem breve, e opcionalmente, uma descrição mais detalhada e um rodapé.
<tipo>(<escopo opcional>): <título>
<corpo opcional>
<rodapé opcional>
Exemplo:
feat(login): Adiciona funcionalidade de login
Esta alteração implementa a funcionalidade de login no sistema,
permitindo que os usuários acessem suas contas com segurança.
### Precisa Implementar:
- Validação de entrada do usuário
Podemos comparar cada tipo de commit semântico à alquimia praticada em Fullmetal Alchemist. Vamos conhecer seus tipos a seguir:
Adicionando novos elementos para criar uma nova substância:
💄 feat - indica que seu trecho de código está incluindo um novo recurso
Corrigindo um erro em sua transmutação:
🐛 fix - indica que o código modificado resolve um problema específico, geralmente um bug, que estava presente no projeto.
Atualizando o livro de anotações de um alquimista:
📚 docs - indica que ocorreram mudanças na documentação do projeto, como por exemplo, atualizações no arquivo README ou em outros documentos relacionados, sem envolver alterações no código-fonte.
Aprimorando suas habilidades através de práticas e experimentos:
🧪 test - são usados quando há modificações nos testes do projeto, como criar, alterar ou excluir testes unitários, sem envolver mudanças no código-fonte
Ajustando as ferramentas e materiais que utiliza em suas transmutações:
📦 build - são usados quando há alterações nos arquivos de configuração relacionados à construção do projeto, bem como nas dependências do projeto. Essas alterações não envolvem mudanças no código-fonte em si, mas afetam o processo de compilação, empacotamento ou distribuição do software.
Refinando suas transmutações para aumentar sua eficiência:
⚡ perf - são usados para destacar alterações no código que estão relacionadas à melhoria de desempenho, como otimizações de algoritmos, redução de sobrecarga ou outras melhorias que visam aumentar a eficiência e rapidez do software.
Refinando a apresentação de suas fórmulas em seus cadernos:
👌 style - indicam que ocorreram alterações relacionadas à formatação do código-fonte, como ajustes de espaços em branco, adição ou remoção de ponto e vírgula, correções de linting e outras modificações que não afetam a lógica ou funcionalidade do código, mas contribuem para uma melhor organização e legibilidade do mesmo.
Refinando sua técnica para alcançar resultados mais eficientes e elegantes:
♻️ refactor - referem-se a alterações no código que visam melhorar sua estrutura interna, sem alterar sua funcionalidade externa. Isso pode incluir refatorações para tornar o código mais organizado, legível ou eficiente, como modificar a forma como uma parte da tela é processada, realizar otimizações de performance ou responder a sugestões de revisão de código, mantendo a mesma funcionalidade geral do software.
Organizando e mantendo seu laboratório em ordem:
🔧 chore - Commits do tipo chore indicam atualizações de tarefas de build, configurações de administrador, pacotes... Exemplo: Mudar regras do eslint, adicionar prettier, adicionar mais extensões de arquivos ao .gitignore. (Não inclui alterações em código)
Ajustando e melhorando seus processos de experimentação contínua:
🧱 ci- indicam alterações relacionadas à integração contínua (CI), que envolvem configurações, scripts ou ajustes necessários para automatizar e facilitar a integração do código-fonte no processo de desenvolvimento.
Manipulando ingredientes ou materiais brutos:
🗃️ raw - indicam alterações relacionadas a arquivos de configuração, dados, características ou parâmetros fundamentais do projeto.
Exemplos:
git commit -m ":tada: Commit inicial"
git commit -m ":books: docs: Atualização do README"
git commit -m ":sparkles: feat: Página de login"
git commit -m ":lipstick: feat: Estilização CSS da tela de login"
git commit -m ":bulb: docs: Comentários sobre a função calcularTaxa( )"
Conclusão
Em resumo, tanto a alquimia quanto o git commit são poderosas ferramentas que permitem aos praticantes realizar mudanças significativas em seus respectivos campos de atuação. Ambos exigem conhecimento e responsabilidade para serem usados de forma eficaz e evitar consequências indesejadas.
Experimente começar a usar o Conventional Commits e veja como ele pode ser útil, ajudando a compreender de forma simples quais alterações foram realizadas no trecho de código que foi commitado.
Referências
https://www.conventionalcommits.org/pt-br/v1.0.0/
https://medium.com/linkapi-solutions/conventional-commits-pattern-3778d1a1e657