Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Revertendo alterações

Surgiu uma dúvida enquanto eu precisei fazer um git revert.

No git log, pode ter algo assim:

6d3a6a2c commit 12
be0fd92c commit 11
7441560f Merge branch 'outro_branch' into 'este_branch'
a4065d9f commit 10
43a4436f commit 9
09ed8f04 commit 8

Supondo que eu queria reverter o commit 10 e o commit 11, é necessário desfazer de alguma forma o merge (entre o commit 10 e o commit 11)?

1 resposta
solução!

Oi, Flavio, tudo bem?

Peço desculpas pela demora em responder!

Não é obrigatório ou necessário desfazer o commit que está entre as alterações, neste caso o commit de merge. Porém, pode haver situações que seja necessário essa reversão, mas depende do cenário no qual estamos trabalhando, da demanda que nos é passada ou do que estamos tentando reverter.

Vale ressaltar que o comando git revert é responsável por reverter tudo que foi feito em um determinado commit sem apagar o histórico do projeto. Basicamente esse comando cria um novo commit que registra o que foi desfeito.

Suponha que em um determinado commit que já tinha a frase:"Olá, tudo bem?", tenha sido adicionada uma linha logo abaixo com outra frase de modo que o resultado seja:

Olá , tudo bem?
Qual é o seu nome?

Ao utilizar o git revert essa linha com a frase: "Qual é o seu nome?" vai ser desfeita, portanto voltaríamos a ter apenas a frase: "Olá, tudo bem?".

No caso do seu projeto, para reverter o commit 10, basta usar o comando:

git revert a4065d9f

Um novo commit será criado, desfazendo as alterações que foram feitas dentro do commit 10.

Para reverter as mudanças do commit 11, o comando é o mesmo, apenas o código de identificação do commit é alterado:

git revert be0fd92c

Novamente um novo commit será criado para indicar que as alterações no commit 11, foram desfeitas e voltaram a ser como eram antes desse commit.

Caso você quisesse, além de apagar os commit 10 e 11, apagar também o commit do "meio", ou seja, o de merge, poderíamos utilizar o seguinte comando:

git revert <hash do commit anterior ao que você deseja reverter>..<hash do commit mais recente>

No caso do seu projeto o código seria escrito da seguinte maneira:

git revert 43a4436f..be0fd92c

Caso durante o git revert haja conflito entre versões basta ir no editor de código-fonte que você está utilizando para desenvolver o seu projeto, como por exemplo o Visual Studio Code (VS Code) ou o Sublime Text, e apagar a parte que não deseja manter e clicar em salvar. Em seguida digite no terminal o comando git add . e depois utilize o comando git revert --continue. Dessa forma, todas as alterações feitas nos commits dentro desse intervalo vão ser revertidas.

Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição!

Abraços!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software