How To Undo Last Git Commit

Se você é um desenvolvedor web ou engenheiro de software, é muito provável que você esteja enviando muitos commits para seu Git repositório todos os dias.

No entanto, em alguns casos, você submeteu alguns arquivos que não deveriam ser enviados ao seu repositório Git.

Às vezes, você pode querer realizar mudanças adicionais antes de enviar o commit .

Como consequência, você precisa desfazer o último commit do seu repositório Git.

Neste tutorial, vamos ver como você pode desfazer facilmente o último commit, talvez para re-commitar as alterações mais tarde.

Índice

Desfazer o último Git Commit com reset

A maneira mais fácil de desfazer o último commit do Git é executar o comando “git reset” com a opção “–soft” que preservará as alterações feitas em seus arquivos. Você deve especificar o commit para desfazer, que é “HEAD ~ 1” neste caso.

O último commit será removido do seu histórico do Git.

Se você não está familiarizado com esta notação, “HEAD ~ 1” significa que você deseja redefinir o HEAD (o último commit) para um commit anterior no histórico de log.

Então, qual é o impacto deste comando?

O comando “git reset” pode ser visto como o oposto do comando “git add”, essencialmente adicionando arquivos para o índice Git.

Ao especificar a opção “–soft”, o Git é instruído a não modificar os arquivos no diretório de trabalho ou no índice.

Como um exemplo , digamos que você adicionou dois arquivos em seu commit mais recente, mas deseja realizar algumas modificações neste arquivo.

Como consequência, você usará “git reset” com a opção “–soft” a fim de desfazer o último commit e realizar modificações adicionais.

Como você pode ver, ao desfazer o último commit, o arquivo ainda está no índice (mudanças a serem submetidas) mas o commit foi removido.

Incrível, você desfez com sucesso o último commit Git em seu repositório.

Hard Reset Git commit

Na seção anterior, vimos como você pode desfazer facilmente o último commit preservando as alterações feitas nos arquivos no índice.

Em alguns casos, você simplesmente deseja livrar-se do commit e das mudanças feitas nos arquivos.

Este é o propósito da opção “–hard”.

Para desfazer o último commit e descartar todas as mudanças no diretório de trabalho e no índice, execute o comando “git reset” com a opção “–hard” e especifique o commit antes de HEAD (“HEAD ~ 1”).

Tenha cuidado ao usar “–hard”: as alterações serão removidas do diretório de trabalho e do índice, você perderá todas as modificações.

De volta ao exemplo que detalhamos antes, digamos que você enviou um novo arquivo para seu repositório Git chamado “arquivo1”.

Agora, vamos fingir que você deseja desfazer o último commit e descartar todas as modificações.

Ótimo, agora vamos ver o estado do nosso repositório Git .

Como você pode ver, o arquivo foi completamente removido do repositório Git (índice + diretório de trabalho)

Git de redefinição mista commit

Para desfazer o último commit do Git, manter as mudanças no diretório de trabalho, mas NÃO no índice, você deve usar o comando “git reset” com a opção “–mixed”. Próximo a este comando, simplesmente anexe “HEAD ~ 1” para o último commit.

Como exemplo, digamos que adicionamos um arquivo chamado ” file1 ”em um commit que precisamos desfazer.

Para desfazer o último commit, simplesmente executamos o comando” git reset “com a opção” –mixed “.

Ao especificar a opção” –mixed “, o arquivo será removido do índice Git, mas não do diretório de trabalho.

Como consequência, o” –mixed ”É uma” mistura “entre o soft e o hard reset, daí seu nome.

Ótimo! Você encontrou outra maneira de reverter o último commit enquanto preserva as alterações feitas nos arquivos.

Na próxima seção, veremos outra maneira de reverter o último commit usando o comando git revert.

Desfazer o último commit com reversão

Para reverter o último commit do Git , use o “git revert” e especifique o commit a ser revertido que é “HEAD” para o último commit de seu histórico.

O comando “git revert” é um pouco diferente do comando “git reset” porque gravará um novo commit com as alterações introduzidas pela reversão do último commit.

Observe também que com “git reset ”você especificou” HEAD ~ 1 “porque o comando reset define uma nova posição HEAD enquanto a reversão realmente reverte o commit especificado.

Como consequência, você terá que confirmar as mudanças novamente para que os arquivos sejam revertido e para que o commit seja desfeito.

Como conseqüência, digamos que você tenha enviado um novo arquivo ao seu repositório Git, mas deseja reverter este commit.

Ao executar o comando “git revert”, o Git abrirá automaticamente seu editor de texto para confirmar as alterações.

Quando você terminar com a mensagem de confirmação, uma mensagem será exibida com o novo hash de confirmação.

Agora, se você inspecionasse seu histórico Git novamente, notaria que um novo commit foi adicionado para desfazer o último commit do seu repositório.

Conclusão

Neste tutorial, você viu todas as maneiras de desfazer o último commit do seu repositório Git.

Você aprendeu sobre o “git reset ”E as diferentes maneiras de executá-lo dependendo do que você deseja manter ou não.

Você também aprendeu sobre a diferença entre o comando git reset e o comando git revert, o último adicionando um novo commit em ordem para reverter o do seu repositório.

Se você está curioso sobre o Git ou sobre o mecanismo de software eering, temos uma seção completa dedicada a ele no site, então certifique-se de dar uma olhada!

Se você gosta do Git, pode gostar de nossos outros artigos:

  • Como clonar um repositório Git
  • Como remover o estágio de arquivos Git
  • Como escolher os commits Git
git

Write a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *