15. Descartando mudanças no stage (antes do commit)

Metas

  • Aprender como desfazer mudanças que já estão no stage

01 Edite o arquivo e adicione as mudanças ao stage

Faça mudanças ao arquivo hello.html na forma de um comentário indesejado.

Arquivo: hello.html

<html>
  <head>
    <!-- This is an unwanted but staged comment -->
  </head>
  <body>
    <h1>Hello, World!</h1>
  </body>
</html>

Adicione o arquivo modificado ao stage.

Execute:

git add hello.html

02 Verifique o status

Verifique o status da mudança indesejada.

Execute:

git status

Resultado:

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   hello.html
#

O status mostra que a mudança está no stage e pronta para um commit;

03 Revertendo a zona de buffer

Felizmente, o status informado nos mostra exatamente o que devemos fazer para cancelar mudanças no stage.

Execute:

git reset HEAD hello.html

Resultado:

$ git reset HEAD hello.html
Unstaged changes after reset:
M   hello.html

O comando reset retorna a zona do buffer para HEAD. Isso limpa a zona do buffer das mudanças que nós acabamos de adicionar ao stage.

O comando reset (padrão) não altera o diretório de trabalho. Logo, o diretório de trabalho ainda tem os comentários indesejados. Nós podemos usar o comando checkout do tutorial anterior para remover as mudanças do repositório de trabalho.

04 Mudando para a versão do commit

Execute:

git checkout hello.html
git status

Resultado:

$ git status
# On branch master
nothing to commit (working directory clean)

Nosso diretório de trabalho está limpo novamente.