Article image
Michele Lopes
Michele Lopes11/03/2024 17:11
Compartilhe

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:

image

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

https://github.com/iuricode/padroes-de-commits

Compartilhe
Comentários (0)