Todo mundo que utiliza o sistema de versionamento Git em um momento ou outro se deparou com um problema: a organização dos commits do repositório. Quais arquivos devem entrar em um commit? E qual mensagem colocar?

Esse é um problema que afeta todas as pessoas que programam, e com toda certeza precisa ser tratado com seriedade já que commits mal feitos podem levar à confusão e erros no futuro, além de dificultar muito a manutenção do código caso seja necessário voltar ao histórico de commits.

O que é um bom commit?

De maneira geral, um bom commit é aquele responsável por uma única alteração, onde podemos facilmente identificar o que foi feito. Commits grandes, que contém diversas alterações diferentes, costumam ser difíceis de revisar e entender. Além disso, mensagens genéricas como “atualização”, “bug corrigido”, “nova funcionalidade” podem ser problemáticas pois não conseguimos identificar exatamente o que aquele commit está fazendo.

Que arquivos adicionar em um commit?

Esse é o primeiro obstáculo na criação de um bom commit. Muitas vezes, enquanto estamos desenvolvendo um projeto, acabamos nos esquecendo de fazer commits até chegar o momento de dar uma pausa no projeto. E nesse momento, nos deparamos com diversos arquivos alterados.

A quantidade de arquvios por commit pode variar, mas o ideal é que todos os arquivos presentes no commit tenham relação apenas com a alteração que aquele commit realiza.

Vamos supor que você vai implementar uma página chamada “carrinho” e para implementá-la, você precisou alterar os arquivos “botao”, “cabecalho” e “contextoGlobal”. Depois disso, foi preciso implementar a página “confirmarCompra” e novamente foi necessário editar os arquivos “botao” e “contextoGlobal”.

A abordagem correta aqui seria fazer um commit após finalizar a página “carrinho” e outro após implementar a página “confirmarCompra” ao invés de fazer um único commit. Já que se todas as alterações ficarem no mesmo commit, você ficaria com as alterações responsáveis pela página “carrinho” e pela página “confirmarCompra” juntas.

Sendo assim, caso um bug esteja presente nas alterações responsáveis pela página “confirmarCompra”, retornar para o commit anterior à essa alteração também irá deletar as alterações da página “carrinho”.

Como escrever a mensagem de um commit?

A mensagem de um commit é a primeira coisa que veremos ao acessar o histórico de commits. Essa mensagem precisa ser clara e também precisa identificar o que aquele commit está alterando. A mensagem de um commit deve ter no máximo 50 carcateres, portanto, o texto escrito deve ser claro e conciso.

Ao invés de uma mensagem como “melhoria no botão”, deveríamos utilizar algo como “botão de logout recebe cor por props” ou então “botão de logout alterado para receber cor”. A ideia aqui é transformar uma mensagem mais genérica em uma mensagem específica que reflita as alterações feitas.

Existem algumas padronizações criadas para a elaboração de mensagens em commits que tem o intuito de ajudar a criação de mensagens de commit mais claras e úteis. Um exemplo disso é o padrão Conventional Commits, mas nada impede que você crie uma codificação própria se achar que isso é necessário.

Veja também