1
resposta

Erro no git stash pop

Ao tentar executar o comando git stash pop para continuar de onde parei o trabalho e manter as atualizações feitas e salvas após o stash aparece o seguinte erro: CONFLICT (content): Merge conflict in index.html E no editor de textos (VSC) aparece o conflito para que eu corrija manuelamente. Alguém sabe dizer o porquê desse erro?

1 resposta

Oi, Aristides, tudo bem?

Peço desculpas pela demora em te responder! O erro merge conflict ocorre quando tentamos realizar mudanças em uma mesma linha em branches diferentes e quando realizamos o comando merge, o git não consegue decidir sozinho qual linha deverá manter.

Dentro do próprio Visual Studio Code que você está utilizando aparecerá opções de como lidar com este tipo de erro e ao selecionar as opções ou até mesmo modificar o código, conseguiremos sanar esse problema. Abaixo, um exemplo de como irá aparecer o código na ferramenta VSCode após o erro de conflito:

Captura de tela. Trecho de código em HTML no editor de texto Visual Studio Code. A primeira linha possui a tag “body”. Logo abaixo, há uma sequência de opções em Inglês, que significam “Aceitar mudança atual”, “Aceitar mudança recebida”, “Aceitar ambas mudanças” e “Comparar mudanças”. Abaixo, está destacado pela cor verde o código presente na branch master, o qual é separado por um conjunto de sinais de igual, indicando uma linha. Depois disso, há o código presente na nova branch que foi criada. Por fim, há a tag de fechamento de “body”.

Na imagem acima, o VSCode marca o local do código onde ocorreu o conflito e a partir disso é preciso escolher qual alteração iremos manter no projeto. Para isso podemos usar as opções que aparecem na parte superior do código conflituoso, que são: Accept Current Changes, Accept Incoming Changes, Accept Both Changes e Compare Changes. Traduzindo as opções temos: Aceitar a mudança atual (o que foi feito na branch master); Aceitar a mudança recebida (o que foi feito na outra branch); Aceitar ambas as mudanças e Comparar mudanças. Ao clicar na opção que mais se encaixar para o seu cenário, o conflito será resolvido, basta clicar no botão da opção que deseja manter.

Outra maneira de resolver o conflito de versões é apagando a versão que queremos descartar. Sendo assim, tendo como base a imagem conflituosa que foi mostrada acima, suponha que queremos manter os dizeres : <h1> Olá, Mundo! </h1> pertencentes a ramificação new_branch, neste caso, teremos que apagar os códigos feitos na ramificação Head:

<<<<<<< HEAD (Current Change)
    <h1>Hello World!</h1>
=======

Dessa forma restará apenas os códigos referentes a ramificação new_branch, que estão destacadas em roxo:

<h1>Olá, Mundo!</h1>

Após a escolha do código que deseja manter e consequentemente resolver o conflito, salve as modificações desejadas e siga com a realização do comando git mergepara unir as ramificações.

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

Grande abraço!

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