Um bom commit no Git não segue o conventional commit – e nem precisa.
Pelo menos, não necessariamente – diferente da obrigação que se fala tanto na internet hoje em dia.
Não parece que todo commit pra ser perfeito precisa seguir a estrutura "feat: add something new and bla bla" ?
Mas muitos se esquecem do óbvio: um dos maiores objetivos de um commit é dizer » o que ele faz, e porquê ele faz «
E olha, mais raro que achar ouro no seu quintal é encontrar um commit que diz o porquê ele existe.
Pensa em você escrevendo a primeira linha de uma redação no Word.
Clica em Salvar. Redação pronta. Partiu descansar?
Ah meu jovem, ainda não. Toda escrita começa com uma palavra e evolui, muda, se descobre, melhora. Com seu código também é assim.
Encare seus commits como parte de uma linha do tempo do teu projeto. A missão delas é » marcar progresso «
O commit é a prova que uma parte dessa grande redação já foi feita (e por quem). Um commit não é feito pra você hoje; ele é feito pra você daqui 1 semana, 1 ano, em diante.
E até para outras pessoas. Que é o caso de trabalhar em uma equipe.
"Mas Alberto, qual a melhor forma de escrever meus commits, então?"
Primeiro saiba que o mais importante é seguir um padrão no projeto. Não precisa reinventar a roda, amigo (a), ou como diria minha Vó, "pra quê enfeitar pavão?"
Se seu time usa de um jeito, vá em frente – inclusive o mesmo idioma (só não vale chinês, pelo bem de todos).
Dito isso, o seu commit deve:
☆ Dizer o que ele faz (de forma simples) – e aqui eu gosto de usar a técnica: "se eu publicar esse commit, ele vai [mensagem do commit]"
☆ Dizer o porquê ele faz (se houver) – lá vai mais uma técnica: "O commit vai [mensagem] porquê [descrição]"
Exemplo:
Mensagem
adicionar estilo de borda no componente Button
Descrição
a remoção do estilo padrão criou um problema de acessibilidade para usuários que usam apenas o teclado para navegação na tela. Esse commit adiciona-o novamente e aplica o style guide da empresa.
Pronto!
Esse é o segredo (anota): independente do formato, seu commit deve dizer o que seu código precisa mudar pra que o motivo pra criação dele se resolva.
Assim você evita dois problemas em repositórios, tão comuns quanto receber mensagem repetida de IA:
- Commits que apenas explicam o próprio código
- Vários commits que você não faz ideia do porquê foram criados. Nem hoje, nem nunca. (e oremos pra que não descubram quem criou)
Fácil assim. Dificílimo de achar. Experimenta.
Cuidado com commit que diz tudo, menos o importante.