Desfazer alterações

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Quando você quiser desfazer alterações em um repositório do Git, primeiro decida que tipo de alterações deseja desfazer. Por exemplo, você pode querer:

  • Descarte as alterações não confirmadas em um arquivo revertendo o arquivo para sua última versão confirmada. Você também pode reverter um arquivo para qualquer versão confirmada.
  • Reverta um branch para um estado anterior redefinindo-o para um commit anterior.
  • Desfaça as alterações feitas por um commit compartilhado criando um novo commit que inverte as alterações. Como essa abordagem não reescreverá o histórico de commit existente, ela é adequada para reverter as alterações feitas por commits que foram enviadas por push e estão em uso por outras pessoas.
  • Altere seu último commit para modificar seu conteúdo ou mensagem. Para obter mais informações, consulte Como atualizar seu último commit.
  • Corrija um problema introduzido em um commit anterior criando um novo commit que inclui a correção. Para obter mais informações, confira Como criar um commit.

Neste artigo, você aprenderá a:

  • Descartar alterações não confirmadas em um arquivo
  • Reverter um branch para um estado anterior
  • Desfazer as alterações feitas por um commit compartilhado

Descartar alterações não confirmadas em um arquivo

Se você tiver feito alterações em um arquivo, mas não tiver confirmado essas alterações, poderá usar o check-out do Git para descartar rapidamente as alterações e reverter o arquivo para sua última versão confirmada.

O Git checkout também pode reverter um arquivo para qualquer versão confirmada quando você especifica o ID do commit.

Aviso

Se houver uma chance de você querer reaplicar as alterações que o Git checkout descartaria, considere stash essas alterações.

O Visual Studio 2022 fornece uma experiência de controle de versão do Git usando o menu Git, as Alterações do Git e através dos menus de contexto no Gerenciador de Soluções. O Visual Studio 2019, versão 16.8, também oferece a interface do usuário do Git do Team Explorer. Para saber mais, consulte a guia Visual Studio 2019 - Team Explorer.

O Visual Studio dá suporte a descarte das alterações não confirmadas em um arquivo revertendo o arquivo para sua última versão confirmada.

Na janela Alterações do Git, identifique o arquivo com as alterações que você deseja descartar. Se o arquivo estiver na seção Alterações preparadas, clique com o botão direito do mouse nela e escolha Cancelar preparação. Os arquivos não preparados aparecem na seção Alterações.

Captura de tela das opções de menu de contexto para arquivos preparados no Visual Studio.

Se o arquivo estiver na seção Alterações, clique com o botão direito do mouse nela e escolha Desfazer Alterações para descartar todas as alterações no arquivo desde a última confirmação.

Captura de tela das opções de menu de contexto para arquivos alterados no Visual Studio.

Reverter um branch para um estado anterior

Você pode reverter um branch para um estado anterior usando a redefinição do Git para redefinir o branch para um commit anterior. O Git reset afeta todos os arquivos em todas as pastas de branch.

O Git reset tem algumas opções. A opção padrão é reverter o branch para um commit anterior, mas manter todas as alterações subsequentes como alterações não confirmadas. Outra opção é reverter um branch para um commit anterior descartando todas as alterações em todos os arquivos de branch desde esse commit.

Aviso

Não redefina um branch para um commit antes do último commit se o último commit tiver sido enviado por push e compartilhado com outras pessoas. Isso fará com que o histórico do branch local não corresponda mais ao histórico de branch remoto. Para branches compartilhados, consulte Desfazer as alterações feitas por um commit compartilhado.

  1. Na barra de menus, escolha Git > Exibir Histórico do Branch para abrir a guia Histórico do branch atual.

    Captura de tela da opção Exibir histórico do branch no menu Git no Visual Studio.

  2. Na guia Histórico do branch atual, clique com o botão direito do mouse no commit que você deseja redefinir e escolha Redefinir > Excluir Alterações (--difícil) para redefinir o branch para o commit selecionado e excluir todas as alterações em todos os arquivos de branch desde esse commit. Ou escolha Redefinir > Manter Alterações (--misto) para redefinir o branch para o commit selecionado e manter todas as alterações subsequentes como alterações não preparadas.

    Captura de tela da opção Redefinir no menu de contexto para um commit na janela Histórico no Visual Studio.

Desfazer as alterações feitas por um commit compartilhado

Você pode desfazer as alterações feitas por um commit usando o Git reverter para criar um novo commit que reverta essas alterações. O Git revert não exclui o commit original. Essa abordagem é adequada para desfazer as alterações feitas por um commit compartilhado porque o Git revert não alterará o histórico de commit anterior e, portanto, os históricos de branch local e remoto continuam a corresponder.

  1. Na barra de menus, escolha Git > Exibir Histórico do Branch para abrir a guia Histórico do branch atual.

    Captura de tela da opção Exibir histórico do branch no menu Git no Visual Studio.

  2. Na guia Histórico do branch atual, clique com o botão direito do mouse no commit que você deseja reverter e escolha Reverter para criar um novo commit que desfaça as alterações feitas pelo commit selecionado.

    Captura de tela da opção Reverter no menu de contexto para um commit na janela Histórico no Visual Studio.

Próximas etapas