Desfazer Commit no Git
- Desfazer o commit no Git - Hard Reset
- Desfazer Commit no Git - Redefinir Git
- Desfazer Commit no Git - Soft Reset Git
- Desfazer Commit no Git - Recuperar Arquivos Hard Reset
Este artigo está prestes a nos guiar sobre como recuperar o que não pretendemos fazer enquanto usamos o Git commit. O Git não é tão complicado a ponto de precisarmos de um grande processo para resolver nosso problema específico, mas é mais do que o problema que é causado é tão grande que técnicas diferentes são necessárias, dependendo do que temos, o problema e o que queremos resultado.
Existem muitos aspectos do Git que são fáceis de entender, mas voltar para onde estávamos antes é muito mais fácil e apreciável; é mais fácil desfazer mudanças importantes em um repositório. É um momento um pouco assustador quando não sabemos como isso é executado por meio de comandos. Mas, na verdade, é surpreendentemente fácil fazer pequenas coisas como confirmar ou desfazer os commits.
Mas o que você faria neste caso para desfazer seu indesejado commit
e então commitar suas novas mudanças.
Digamos que se você fez algumas alterações e depois as comprometeu, para esse propósito, existem quatro métodos para fazer isso:
Desfazer o commit no Git - Hard Reset
Se você tiver, onde 40 é o seu HEAD
e (42) é o estado dos nossos arquivos.
(42)
38-39-40
↑
Head
E você deseja desfazer o commit 40 e nunca mais querer vê-lo novamente e apagar todas as mudanças nos arquivos modificados localmente.
Usaremos o seguinte comando:
git reset --hard HEAD ~ 1
Resultado:
(42)
38-39
↑
Head
Agora 39 é o HEAD
. Como no exemplo acima, usamos --hard
, agora seus arquivos são redefinidos para seu estado no início do commit, que é o 39º commit.
Desfazer Commit no Git - Redefinir Git
Vamos supor que o último commit 40 não foi grande coisa, mas apenas um pouco errado. Agora queremos desfazer
o commit, mas manter nossas alterações. Começando novamente a partir daqui, com 40 como nosso HEAD
:
(42)
38-39-40
↑
Head
Em vez de usar o parâmetro --hard
, usaremos o seguinte comando:
git reset HEAD ~ 1
Resultado:
(42)
38-39-40
↑
Head
Como vimos em ambos os casos, HEAD
apenas define o último commit. Quando fazemos um git reset HEAD~1
, o comando Git move o ponteiro HEAD
de volta para um commit. Mas (a menos que você use --hard
), deixamos nossos arquivos como estavam antes. Não perdemos nada nele.
Desfazer Commit no Git - Soft Reset Git
Em uma nota mais leve, você pode até mesmo desfazer nosso commit, mas deixar nossos arquivos e nosso índice usando o seguinte:
git reset --soft HEAD ~ 1
Isso não apenas deixará nossos arquivos lá; até deixa nosso índice lá sozinho. Quando fazemos git status
, veremos que os mesmos arquivos estão no índice como antes. Na verdade, veremos após este comando, poderíamos fazer git commit
e estaríamos fazendo novamente o commit anterior que acabamos de fazer.
Desfazer Commit no Git - Recuperar Arquivos Hard Reset
Suponha que desfizemos um commit como no exemplo da primeira opção, mas percebamos que precisamos dele posteriormente. Agora, o que fazer?
Não se preocupe e ainda há uma maneira de recuperá-lo. Usaremos o comando git reflog
e veremos uma lista de commits (não finalizados) que movemos. Encontre o commit que destruímos e faça o seguinte:
git checkout -b BranchName CommitYouDestroyed
Agora restauramos esse commit. No Git, os commits não excluem por 90 dias a partir do dia em que foram excluídos, então podemos facilmente restaurá-lo como um backup novamente nos repositórios.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn