Logotipo do Git

Git

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:

  1. Editar o último commit local (ANTES DO PUSH):
  2. $ git commit --amend

    Irá abrir seu editor de texto, com o conteúdo da mensagem do último commit e você pode editar tranquilamente.

  3. Editar commits mais antigos (ANTES DO PUSH):
  4. 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.

  5. Alterar os commits (DEPOIS DO PUSH):
  6. 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: