DEV Community

Lucas Valhos
Lucas Valhos

Posted on

Desfazer o último commit no Git

Para desfazer o último commit no Git, você pode usar um dos seguintes comandos, dependendo da situação:

1 - Desfazer o último commit, mantendo as mudanças no seu diretório de trabalho:

   git reset --soft HEAD~1
Enter fullscreen mode Exit fullscreen mode

Este comando desfaz o último commit, mas mantém as mudanças no seu diretório de trabalho. Ou seja, o conteúdo do commit desfazido ainda estará disponível para ser cometido novamente.

2 - Desfazer o último commit, descartando as mudanças:

   git reset --hard HEAD~1
Enter fullscreen mode Exit fullscreen mode

Este comando desfaz o último commit e também descarta todas as mudanças feitas nesse commit. As mudanças não estarão mais no seu diretório de trabalho.

3 - Desfazer o último commit sem mexer no seu diretório de trabalho ou no staging area (área de preparação):

   git reset --mixed HEAD~1
Enter fullscreen mode Exit fullscreen mode

Este comando desfaz o último commit, mantém as mudanças no diretório de trabalho, mas remove-as do staging area.

4 - Desfazer o último commit e criar um novo commit corrigido:

Se você quiser desfazer o último commit, fazer algumas modificações e depois criar um novo commit, você pode fazer isso em duas etapas:

  • Primeiro, desfazer o commit, mantendo as mudanças no seu diretório de trabalho:

     git reset --soft HEAD~1
    
  • Faça as modificações necessárias e depois crie um novo commit:

     git add .
     git commit -m "Mensagem do novo commit"
    

5 - Reverter um commit específico:

Se você já tiver empurrado (push) o commit para um repositório remoto ou quiser desfazer um commit específico, você pode usar o comando revert:

   git revert <commit_hash>
Enter fullscreen mode Exit fullscreen mode

Isso cria um novo commit que desfaz as mudanças do commit especificado, sem alterar o histórico de commits.

Exemplo Prático

Para desfazer o último commit mantendo as mudanças no diretório de trabalho:

git reset --soft HEAD~1
Enter fullscreen mode Exit fullscreen mode

Para desfazer o último commit e descartá-lo completamente:

git reset --hard HEAD~1
Enter fullscreen mode Exit fullscreen mode

Escolha o método que melhor se adapta à sua necessidade, lembrando que o uso de --hard é destrutivo e não pode ser desfeito facilmente.

Top comments (0)