4. Desfazendo alterações indesejadas

Descartando alterações no stage

Agora, suponha que decidimos dar destaque ao nosso Hello, World!. Vamos deixá-lo com cara de título!

Como fazemos isso?

Para isso, que tal envolver o conteúdo do hello.html nas tags <head>? O resultado deve ficar assim:

Arquivo: hello.html
<head>Hello, World!</head>
Tarefa
Concluída

Envolva o conteúdo do hello.html nas tags <head> </head> e adicione as alterações ao stage.

Só um segundo... Eu disse tags <head> </head>? Ah, desculpe, é claro que eu quis dizer as tags <h1> </h1>! Só que as alterações já foram adicionadas ao stage.

Ah, não... E agora, o que fazemos?

Antes de qualquer coisa, vamos rodar rapidinho um git status para ver o que está acontecendo.

DICA SUPERÚTIL: você pode usar as setas e do teclado para navegar pelo histórico de comandos no terminal. É um ótimo jeito de evitar digitar tudo de novo.

Tarefa
Concluída

Execute o comando git status para verificar o status do repositório.

Você deve ver algo assim:

Resultado:

On branch main Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: hello.html

Vamos seguir o conselho do comando e tirar as alterações do stage, usando o comando git restore com a opção extra --staged.

Tarefa
Concluída

Execute o comando git restore --staged . para limpar o stage.

Vamos verificar o status de novo.

Tarefa
Concluída

Execute o comando git status para verificar o status do repositório.

A saída deve ficar assim:

Resultado:

On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: hello.html

no changes added to commit (use "git add" and/or "git commit -a")

Surpresa! As alterações ainda estão lá! Mas pelo menos não estão mais no stage para o commit.

E qual é o próximo passo?

Para descartá-las de vez, podemos executar o comando git restore sem nenhuma opção (como fizemos no passo anterior do curso).

Tarefa
Concluída

Execute git restore . para limpar o diretório de trabalho.

Vamos verificar o status de novo.

Tarefa
Concluída

Execute o comando git status para verificar o status do repositório.

A saída deve ficar assim:

Resultado:

On branch main nothing to commit, working tree clean

E pronto! As alterações foram descartadas e o diretório de trabalho está limpo de novo.

Na verdade, poderíamos ter restaurado o diretório de trabalho a um estado limpo de uma vez só. O comando git restore funciona em dois modos: o modo padrão --worktree, que restaura o diretório de trabalho, e o modo --staged, que restaura a staging area. Poderíamos ter usado as duas opções ao mesmo tempo para restaurar tanto a staging area quanto o diretório de trabalho, assim: git restore --staged --worktree ..

Next step
Quer testar o modo história?

Faça o curso do jeito que ele foi pensado: progressão em pequenas doses, ordem linear e focada, desbloqueio gradual das entradas da Gitopedia. Continue com o Git de verdade no VS Code/Cursor/Antigravity/Windsurf a qualquer momento.

Modo história
GRATUITO
mas precisa de login