> For the complete documentation index, see [llms.txt](https://elidianaandrade.gitbook.io/learning-quests/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elidianaandrade.gitbook.io/learning-quests/git-and-github/nivel-6-viajando-no-tempo/desfazendo-um-commit.md).

# Desfazendo um Commit

## Git Reset

O comando `git reset` serve para mover o ponteiro do HEAD para um commit específico, alterando opcionalmente o índice (staging area) e o diretório de trabalho. Dependendo da opção usada, ele pode desfazer commits, modificar o que está preparado para commit ou até apagar mudanças locais.

### Exemplo:

Suponha que você queira desfazer o último commit:

`git reset --soft HEAD~1` — desfaz o commit, mantém tudo staged (pronto para commit).

`git reset --mixed HEAD~1` *(comportamento padrão* `git reset HEAD~1`*)* — desfaz o commit e remove do staging, mas mantém arquivos alterados.

`git reset --hard HEAD~1` — desfaz o commit e apaga todas as alterações locais (⚠️ use com cautela).
