Menu
Coddy logo textTech

Git: desfazer o último commit

Última atualização

Para desfazer o commit mais recente, decida o que deve acontecer com as alterações dele. Mantenha-as no stage com git reset --soft HEAD~1, mantenha-as fora do stage com um simples git reset HEAD~1 ou descarte-as com git reset --hard HEAD~1. Se o commit estiver apenas um pouco errado, git commit --amend o corrige no lugar. Se ele já foi enviado com push, use git revert em vez de reescrever o histórico. Para desfazer um commit mais antigo ou vários de uma vez, veja a página git desfazer commit.

Experimente isso no terminal playground: um shell real no seu navegador, nada para instalar.

Desfazer o último commit move o HEAD um passo para trás - o modo decide se as mudanças ficam preparadas, despreparadas ou são descartadas.

Escolha o que fazer com as alterações

GoalCommand
Desfazer o commit, manter as alterações no stagegit reset --soft HEAD~1
Desfazer o commit, manter as alterações fora do stagegit reset HEAD~1
Desfazer o commit, descartar as alteraçõesgit reset --hard HEAD~1
Corrigir o último commit (mensagem ou arquivos)git commit --amend
Desfazer um commit que você já enviou com pushgit revert HEAD

Exemplo prático

Desfaça o último commit e refaça-o com uma mensagem melhor.

StepCommandResult
1git reset --soft HEAD~1Commit removido, as alterações permanecem no stage
2git commit -m "clearer message"Refaz o commit com as mesmas alterações

Perguntas frequentes sobre desfazer o último commit no Git

Como desfaço o último commit mas mantenho as alterações?
Execute git reset --soft HEAD~1. Isso remove o último commit mas deixa suas alterações no stage, então você pode refazer o commit imediatamente. Para que as alterações fiquem fora do stage na sua árvore de trabalho, use git reset HEAD~1 (o modo padrão).
Como desfaço o último commit e apago as alterações?
Execute git reset --hard HEAD~1. Isso remove o commit e descarta suas alterações da sua árvore de trabalho. É destrutivo: se você pode precisar do trabalho, use --soft no lugar ou recupere depois com git reflog.
E se eu só precisar corrigir a mensagem do commit?
Use git commit --amend. Ele reabre o último commit para que você possa editar a mensagem dele (e refazer o stage dos arquivos se necessário) sem criar um commit separado. Evite emendar um commit que você já enviou com push, pois isso reescreve o histórico.
Como desfaço o último commit depois de fazer o push?
Use git revert HEAD. O revert cria um novo commit que reverte o anterior, deixando o histórico intacto: a escolha segura para branches compartilhadas. Fazer reset de um commit já enviado força todo mundo a reconciliar uma branch reescrita.
Posso praticar isso online?
Sim. Abra o terminal playground para executar esses comandos em um shell real no seu navegador, nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda como desfazer alterações passo a passo.
Coddy programming languages illustration

Aprenda Git com a Coddy

COMEÇAR