Como desfazer o último commit do Git

Desfazer o último commit do Git é uma tarefa comum para desenvolvedores que precisam reverter alterações ou corrigir erros. O Git fornece vários métodos para desfazer o commit mais recente, permitindo manter um histórico do projeto limpo e preciso. Esses métodos incluem redefinir, reverter ou alterar commits, cada um servindo a propósitos diferentes dependendo se você deseja preservar ou descartar as alterações.

Este guia demonstrará como desfazer o último commit do Git usando exemplos práticos. Ao dominar essas técnicas, você pode gerenciar com eficiência o histórico do Git e garantir que seu projeto permaneça bem organizado e livre de erros.

Compreendendo o commit do Git

Antes de explorarmos como desfazer um commit do Git, é crucial compreender o que um commit significa no Git. Um commit representa um instantâneo do seu trabalho em um momento específico. Ele encapsula todas as modificações que você fez desde o último commit. Cada commit é identificado exclusivamente por um hash SHA-1, permitindo que o Git mantenha um histórico de alterações.

Revertendo um commit do Git

Existem duas técnicas principais para reverter um commit do Git: git reset e git revert. Discutiremos cada método em detalhes, incluindo seus casos de uso e implicações.

git reset --soft HEAD~1

Usando git reset

O comando git reset é uma ferramenta potente que permite mover ou “redefinir” seu HEAD atual para um estado especificado. Veja como usá-lo para desfazer seu último commit:

git reset --soft HEAD~1

Neste comando, –soft garante que suas alterações sejam preservadas na área de teste, e HEAD~1 refere-se ao commit antes do atual. As alterações do commit desfeito permanecerão em seu diretório de trabalho e na área de teste.

Aqui está um exemplo de saída:

Unstaged changes after reset:
M    file1.txt
M    file2.txt

Isso indica que as alterações em file1.txt e file2.txt agora não estão em estágio.

Se você deseja descartar completamente o commit e todas as alterações associadas, você pode usar a opção –hard:

git reset --hard HEAD~1

Tenha cuidado com este comando, pois ele descarta permanentemente todas as alterações do último commit.

Utilizando git revert

O comando git revert cria um novo commit que desfaz as alterações feitas em um commit anterior. Esta é uma maneira segura de desfazer alterações, pois não altera o histórico de commits existente. Veja como você pode usá-lo:

git revert HEAD

Este comando criará um novo commit que desfaz as alterações feitas no último commit.

Aqui está um exemplo de saída:

[master 0a9b2aa] Revert "Add new feature"
 1 file changed, 1 insertion(+), 2 deletions(-)

Isso indica que foi criado um novo commit que reverte as alterações do commit anterior.

Desfazendo um commit do Git: exemplos expandidos

Usando git reset: mais exemplos

Redefinindo para um commit específico

Se você quiser desfazer não apenas o último commit, mas vários commits, você pode fazer isso especificando o hash do commit em vez de HEAD~1. Por exemplo:

git reset --soft 9fceb02

Este comando moverá o HEAD para o commit especificado pelo hash 9fceb02, e as alterações de todos os commits após 9fceb02 serão mantidas na área de teste.

Redefinindo alterações não planejadas

Se você fez alterações, mas ainda não as confirmou e deseja desfazê-las, você pode usar git reset sem qualquer referência de commit:

git reset --hard

Este comando irá desfazer todas as alterações não preparadas, revertendo seu diretório de trabalho para o estado do último commit.

Usando git revert: mais exemplos

Revertendo um intervalo de commits

Se quiser desfazer um intervalo de commits, você pode especificar o intervalo usando o comando git revert. Por exemplo:

git revert HEAD~3..HEAD

Este comando criará novos commits que desfazem as alterações feitas nos últimos três commits.

Revertendo um commit específico

Se quiser desfazer um commit específico que não seja o mais recente, você pode fazer isso especificando o hash do commit:

git revert 9fceb02

Este comando criará um novo commit que desfaz as alterações feitas no commit especificado pelo hash 9fceb02.

Conclusão

Git é uma ferramenta poderosa e sua complexidade pode ser assustadora para iniciantes. No entanto, com uma compreensão clara de como desfazer um commit, você pode navegar com segurança no Git. A escolha de usar git reset ou git revert depende de suas necessidades específicas e das implicações de cada comando. Lembre-se de que a chave para dominar o Git é prática e exploração.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)
Categorias Git

Deixe um comentário