Vim para editar commits do Git

Publicado em 25/03/2017

Quando efetuamos um commit no git, a opção -m permite incluir uma pequena mensagem para que possamos referenciar as alterações efetuadas. Mas a tendência é incluirmos mensagens pouco significativas, que não ajudam em nada na hora de descobrir qual commit alterou o que, como no exemplo a seguir:

$ git log --oneline def5b17 Textos atualizados 04c0fb4 Textos atualizados ad7a4be Textos atualizados 05f2553 Textos atualizados 0135e26 Textos atualizados b4f1f45 Acrescentados dois artigos 29ff2ad Alterado README 1a2a63b Alterado README 6714b8f Alterado README 74334c3 Commit inicial fa55633 Initial commit

Uma maneira interessante de acrescentar mensagens úteis nos commits, mantendo consistência de formato, é fazer com que o git execute um template toda vez que o comando commit for executado.

Este template pode ser gerado com qualquer editor de textos, cuja função é apenas pré-editar sua mensagem com o esqueleto de um texto padrão, pronto para ser preenchido e personalizado. Vou usar o vim, meu editor predileto para uso no shell do terminal.

Configurar um template para uso nos commits do git é a coisa mais simples do mundo. Crie um arquivo denominado .git-commit-template no seu diretório home (~/). Abra este arquivo e coloque o texto-padrão que desejar. Uma sugestão:

[refs 0000] Assunto corpo (72 caracteres)

A primeira linha será o título do commit, que deve ser curto para maior clareza.

refs, pode ser usado, por exemplo, para referenciar os issues do GitHub a cada commit, bastante útil durante o desenvolvimento.

A segunda parte da mensagem do commit é o corpo no qual podemos detalhar o que foi alterado. Observem o aviso do limite de 72 caracteres, para que a mensagem caiba na tela da maioria dos terminais.

Finalmente, é preciso configurar o git para usar a template. Eis o comando:

git config --global commit.template ~/.git-commit-template

Isso vai acrescentar as seguintes linhas no seu .gitconfig:

[commit] template = /Users/<username>/.git-commit-template

Configurando o vim

Para que possamos editar as mensagens de commit no vim com os limites esperados, crie ou edite seu arquivo ~/.vimrc e inclua as seguintes linhas:

" Avança o cursor para uma nova linha após 80 caracteres" set textwidth=80 " Todavia, nos commits do Git, o limite é de 72 caracteres" autocmd FileType gitcommit set textwidth=72 " Destaca a coluna 81 (ou 73), para não ultrapassar o limite" set colorcolumn=+1

Para usar o vim como editor padrão, use o comando:

git config --global core.editor

Você poderá usar qualquer outro editor, como o atom, por exemplo. Serão acrescentadas no seu .gitconfig as linhas:

[core] editor = vim

Veja a diferença dos meus últimos commits:

$ git log --oneline e3c29be Atualizado artigo "Usando o vim para editar commits do git" 3adb86d Incluídos dois novos artigos def5b17 Textos atualizados 04c0fb4 Textos atualizados ad7a4be Textos atualizados

Compartilhe esta postagem