Git

Como desfazer o último commit no Git

Como desfazer o último commit no Git
Um fluxo de trabalho comum no Git é que você faz mudanças em seu projeto, adiciona as mudanças à área de teste, confirma as mudanças, faz novas mudanças, prepara as mudanças, confirma as mudanças, e isso continua e continua. Mas e se você cometer suas alterações por engano? Bem nao tema. Você sempre pode desfazer seu último commit no Git. Neste artigo, vou mostrar como desfazer o último commit no Git. Então vamos começar.

Configurando um Repositório Git de Teste:

Nesta seção, vou clonar um dos meus repositórios GitHub no meu computador para configurar um repositório de teste para este artigo. Se você quiser acompanhar, você também pode fazer isso. Se você tem seu próprio repositório Git para trabalhar, ótimo! Você também pode usar.

Para clonar um dos meus repositórios GitHub (https: // github.com / dev-shovon / my-project), execute o seguinte comando:

$ git clone https: // github.com / dev-shovon / my-project undo_commit_demo

O repositório GitHub deve ser clonado em undo_commit_demo / diretório.

Agora, navegue até o undo_commit_demo / diretório da seguinte forma:

O commit que você deseja desfazer pode estar em um branch diferente do meu. Eu quero desfazer o último commit do ie-consertar galho. Então, eu tenho que puxar o galho ie-consertar do meu repositório GitHub.

Você pode puxar o ie-consertar ramificar do GitHub da seguinte maneira:

$ git pull origin ie-fix

NOTA: Aqui, ie-consertar é o nome do ramo.

O ie-consertar ramo deve ser puxado.

Agora, faça check-out para a filial (no meu caso, ie-consertar) a partir do qual você deseja desfazer o último commit da seguinte forma:

$ git checkout ie-fix

Como você pode ver, o último commit do ie-consertar ramo é aec00f3. Nas próximas seções, vou mostrar maneiras de desfazer o último commit em seu repositório Git.

Desfazer o último commit e manter as alterações:

Uma maneira de desfazer o último commit é usar o soft reset no seu repositório Git. O que isso significa é que o último commit é removido e as mudanças que você fez nesse commit são adicionadas à área de teste do seu repositório Git. Desta forma, se você quiser consertar alguma coisa, você pode modificar os arquivos e adicionar um novo commit.

Como você pode ver, o último commit no meu ie-consertar ramo é aec00f3.

$ git log --oneline

Além disso, minha área de teste está limpa.

$ git status

Agora, para remover ou desfazer o último commit, execute o seguinte comando:

$ git reset --soft HEAD ~ 1

Como você pode ver, o commit aec00f3 se foi.

$ git log --oneline

Além disso, o arquivo que modifiquei no último commit está na minha área de teste.

$ git status

Agora, você pode modificar ainda mais os arquivos, consertar os erros que cometeu e confirmar as alterações novamente.

Desfazer o último commit e remover as alterações:

Se o último commit que você deseja remover é inútil para você, então você pode considerar um hard reset no seu repositório Git. O que o hard reset faz é remover o último commit de antes. Mas, também remove todas as mudanças que você fez no último commit. Faça um hard reset apenas quando tiver certeza de que não precisa mais de nada do último commit.

Eu vou puxar o ie-consertar branch do meu repositório GitHub novamente para recuperar o último commit aec00f3 e remova-o novamente nesta seção.

$ git pull origin ie-fix

Como você pode ver, o último commit está de volta. Se o seu repositório Git for carregado para um serviço de nuvem Git, como o GitHub, você também pode restaurar qualquer commit removido por engano.

Como você pode ver, minha área de teste está limpa.

$ git status

Agora, para remover o último commit e remover as mudanças nesse commit, execute o seguinte comando:

$ git reset --hard HEAD ~ 1

O último commit deve ser removido e o CABEÇA ponteiro deve ser atualizado.

Como você pode ver, o commit aec00f3 é removido e o commit imediatamente antes disso (3fffdee) é o atual o último commit.

$ git log --oneline

A área de teste também é limpa. Então, os arquivos de mudanças do commit removido existem.

$ git status

Atualizando o Repositório Git Remoto:

Agora que você removeu com sucesso o commit com falha do seu repositório Git, você pode querer atualizar seu repositório GitHub também. Este é o tópico desta seção.

Como você pode ver, git status também mostra que estou um commit atrás do repositório remoto.

Antes de atualizar meu repositório GitHub, o commit aec00f3 existe, embora eu o tenha removido do repositório Git local, como você pode ver.

Para sincronizar o repositório Git local com o repositório GitHub, execute o seguinte comando:

$ git push --force origin ie-fix

As alterações do repositório Git local devem ser sincronizadas com o repositório GitHub.

O repositório GitHub deve ser atualizado. Como você pode ver, o commit aec00f3 não está mais listado. O commit imediatamente antes aec00f3, qual é 3fffdee agora é o último commit.

Então, é assim que você desfaz o último commit no Git. Obrigado por ler este artigo.

Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...