Erros de Commit
Digamos que você acabou de fazer um commit e errou na mensagem do log de confirmação. Executar este comando quando não existe nada na área de staging permite que você edite a mensagem do commit anterior sem alterar o snapshot. Commits prematuros acontecem o tempo todo durante o desenvolvimento diário. É fácil esquecer de preparar um arquivo ou formatar a mensagem de commit da forma errada.
Aqui estão os métodos para fazer a correção desses erros:
- Editar o último commit local (ANTES DO PUSH):
- Editar commits mais antigos (ANTES DO PUSH):
- Alterar os commits (DEPOIS DO PUSH):
$ git commit --amend
Irá abrir seu editor de texto, com o conteúdo da mensagem do último commit e você pode editar tranquilamente.
Você vai precisar fazer um rebase do seu histórico, que é mais complexo que o processo anterior:
$ git rebase -i HEAD~3
A lista vai ser assim:
pick e499d89 Delete CNAME
pick 0c39034 Better README
pick f7fde4a Change the commit message but push the same commit.
# Rebase 9fdb3bd..f7fde4a onto 9fdb3bd
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Altere "pick" para "reword" nos commits que você quer editar a mensagem:
pick e499d89 Delete CNAME
reword 0c39034 Better README
reword f7fde4a Change the commit message but push the same commit.
Salve e feche o arquivo. Depois disso o git vai abrir cada um dos commits marcados com "reword" para edição. Edite as mensagens, salve e feche.
Antes de mais nada, isso é altamente não recomendado. Isso pode quebrar o repositório.
Para alterar o histórico depois do push, basta seguir um dos passos acima e depois executar:
$ git push –force
O recomendável é evitar tanto quanto possível o push forçado, uma vez que isso altera o histórico do repositório. No caso de push forçado, as pessoas que já clonaram o repositório terão que corrigir manualmente o respectivo histórico local.
Fonte: