Artigo original: https://www.freecodecamp.org/news/how-to-undo-changes-in-git-e1da7930afdb/
Talvez você já saiba que o Git é como um sistema de pontos de gravação. O que você normalmente aprende com o Git, de início, é a salvar suas alterações e a fazer um commit para enviá-las a um repositório remoto. Mas como você desfaz uma alteração e volta a um estado anterior?
É sobre isso que trataremos neste artigo.
Já tratei dos conteúdos deste artigo em um vídeo, caso você prefira aprender assistindo em vez de ler.
Local x Remoto
É mais complicado desfazer algo que já está em um local remoto. É por isso que você talvez deseje manter tudo em seu repositório local até que esteja tudo confirmado.
Quatro cenários comuns
Trataremos dos quatro cenários comuns a seguir
- Descartar alterações locais
- Ajustar um commit anterior
- Voltar para um commit anterior
- Reverter um commit que foi enviado para o repositório remoto
Observação: nas imagens abaixo, usei o client de Git chamado Fork for Mac OS. Você pode fazer a mesma coisa em outros clients de Git semelhantes.
Cenário 1: Descartar alterações locais
O primeiro cenário é aquele em que você criou algumas alterações. Você ainda não fez o commit delas e deseja excluir essas alterações.
Imagine que queremos criar um recurso novo. Adicionaremos algum HTML e algum CSS ao projeto:
<!--No index.html-->
<div class="feature"></div>
```
```css
/* No arquivo CSS */
.feature {
font-size: 2em;
/* Outros estilos */
}
Para descartar essas alterações:
- Vá para a área de staging
- Selecione os arquivos em que você deseja descartar as alterações
- Clique com o botão direito nos arquivos
- Selecione Discard Changes

Cenário 2: Ajustar o commit anterior
Quando você criou um commit, se esqueceu de algumas alterações e quer adicioná-las na mensagem de commit anterior.
- Vá para a área de staging
- Faça o staging dos arquivos para o commit
- Marque a caixa de seleção Amend
- Edite sua mensagem de commit
- Faça o commit

Cenário 3: Voltar para um commit anterior
Você já tem alguns commits em seu repositório local. Você decide que não quer mais esses commits e que deseja “carregar” seus arquivos com um estado anterior.
- Vá em Git History
- Clique com o botão direito no commit para o qual deseja voltar
- Selecione Reset
'nome da branch'
to Here

Observação: você só pode retornar para um commit que ainda não foi enviado por push para o repositório remoto.
Cenário 4: Reverter um commit que foi enviado para o repositório remoto
Se você tem um commit que já foi enviado por push para a branch remota, você precisará revertê-lo.
Reverter significa desfazer as alterações pela criação de um novo commit. Se você adicionou uma linha, o commit de reversão a removerá. Se você removeu uma linha, o commit de reversão a colocará de volta.
Para reverter, faça o seguinte:
- Vá para Git History
- Clique com o botão direito no commit que deseja reverter
- Selecione Revert Commit
- Não se esqueça de marcar
Commit the Changes
- Clique em Revert


Outros cenários
O GitHub tem um arquivo muito útil que mostra como você pode desfazer quase tudo com o Git. Ele será valioso se você encontrar outros cenários além destes. Leia-o aqui (em inglês).
Obrigado pela leitura. O artigo foi útil para você? Se foi, espero que você não se importe de compartilhá-lo. Você poderá estar ajudando outras pessoas.
Este artigo foi publicado originalmente no blog do autor (em inglês).
Assine a newsletter do autor se quiser receber mais artigos que o ajudarão a se tornar um desenvolvedor front-end melhor.