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
- Crédito: baseado no artigo Configuring Git and Vim.