git reset
O comando git reset
é usado para desfazer mudanças em commits anteriores, redefinir o estado do diretório de trabalho e mover branches para commits específicos.
Ele é útil para reverter e reorganizar mudanças em um projeto. No entanto, use-o com cuidado para evitar a perda permanente de dados.
Sintaxe
git reset [opções] <commit>
Argumentos:
- <commit>: O commit para o qual você deseja redefinir. Pode ser especificado por meio de um hash de commit, uma branch ou uma tag.
Opções
-
—soft: Desfaz o commit, mas mantém as mudanças no diretório de trabalho e no índice. Isso permite que você faça ajustes antes de criar um novo commit.
-
—mixed (padrão): Desfaz o commit e as mudanças no índice, mas mantém as mudanças no diretório de trabalho. Isso é útil quando você deseja “desfazer” as mudanças e reorganizá-las em novos commits.
-
—hard: Desfaz o commit e todas as mudanças associadas, tanto no índice quanto no diretório de trabalho. Cuidado, pois isso descartará permanentemente as alterações.
Exemplo
Desfazer o Último Commit
Para desfazer o último commit e manter as mudanças no diretório de trabalho, use:
git reset --soft HEAD~1
Desfazer o Último Commit e as Mudanças no Índice
Se você também deseja desfazer as mudanças no índice, use:
git reset --mixed HEAD~1
Descartar o Último Commit e Alterações Não Commitadas
Para descartar completamente o último commit e também as alterações não commitadas, use:
git reset --hard HEAD~1
Mover uma Branch para um Commit Específico
Se você deseja mover uma branch para um commit específico, pode usar o seguinte comando:
git reset --hard commit-hash
Isso moverá a branch atual para o commit especificado, descartando qualquer commit entre o commit atual e o commit especificado.