1
resposta

Consequência de um git revert em um commit antigo

Olá.

Para exemplificar minha dúvida, suponha que meu git log seja assim (estou simplificando para facilitar)

commit 5
commit 4
commit 3
commit 2
commit 1

Suponha que o commit 5 seja o meu commit mais atual. O que acontece se eu der um git revert no commit 2? As alterações feitas nos commits de 3 a 5 serão mantidas? Ou eu perco todas as alterações de 2 até 5 e volto para o estado do commit 1?

Obrigado.

1 resposta

Oi, Matheus! Tudo bom?

Desde já, peço perdão pela demora em retornar.

O objetivo principal do comando git revert é fazer com que o nosso projeto retorne ao seu estado anterior, revertendo as alterações feitas no commit passado. Sendo assim, seu foco não está pautado em levar o projeto para um ponto mais distante.

Por outro lado, existe o comando git reset, o qual realiza justamente essa ideia que você compartilhou com a gente. Com ele, independente do momento em que estamos no projeto, torna-se possível voltar para versões mais antigas. Consequentemente, tudo aquilo que foi adicionado nos commits 3, 4 e 5, por exemplo, serão perdidos.

Para utilizar o git reset em nosso projeto, precisamos seguir os seguintes passos:

  1. Encontrar o hash do ponto em que desejamos retornar. Isso pode ser feito através do comando git log --oneline, o qual apresenta o histórico dos commits já feitos, bem como o hash abreviado de cada um deles. Ao lado da mensagem atribuída ao commit, há um número, localize-o e copie-o.
  2. Utilizar o comando git reset --hard <hash-do-commit>. Sendo o mais perigoso tipo de git reset, este de fato retorna ao estado desejado, ignorando por completo o que estava no espaço intermediário.

Além do git reset --hard, existe o git reset --soft , que retorna ao ponto especificado, carregando consigo as modificações presentes no histórico de commits.

Quando estamos trabalhando com Git e Github, é muito importante focar a atenção em pontos como este que foi discutido. Em muitos casos, estaremos lidando com modificações delicadas e o uso de git revert e git reset sem responsabilidade pode desencadear vários conflitos. No dia a dia de uma pessoa desenvolvedora de software no mercado de trabalho, esses comandos são utilizados em casos bem específicos, não é algo de uso contínuo como add commit e push.

Espero que tenha compreendido minha explicação, Matheus. Estarei aqui caso tenha alguma dúvida!

Até mais e ótimos estudos para você!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.