1
resposta

Resolve all conflicts manually

Em algum momento devo ter feito um add na branch errada. Mas e agora? como saber onde errei e resolver esses conflitos manualmente?

Alias está faltando isso no curso. Não só passar o conteúdo certo para copiarmos. Mas sim mostrar erros comuns e como corrigir.

Andre@DESKTOP ~/Desktop/Git e Github/Andre (master|REBASE 1/2)
$ git rebase titulo
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
error: could not apply 0bec26d... Corrigindo nome do curso de Docker
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 0bec26d... Corrigindo nome do curso de Docker
1 resposta

Oi, André, tudo bem?

Peço desculpas pela demora em te responder!

Gostaria de agradecer pelo seu feedback sobre acrescentar no curso possíveis erros que são comuns durante o uso dos comandos, e como corrigi-los, por meio dele, poderemos manter nosso desenvolvimento constante e levar aos nossos alunos e alunas um conteúdo ainda mais rico, repleto de aprendizagens, nossa equipe com certeza considerará sobre essa sugestão.

Já a respeito do problema mencionado por você ao realizar o comando git rebase, podemos entender este conflito como algo que ocorre quando realizamos mudanças em uma mesma linha em branches diferentes, neste caso, o Git não consegue decidir sozinho qual alteração ele deve manter, por isso precisamos resolver manualmente as linhas conflituosas antes de realizar a mesclagem de branches.

Para solucionar este problema podemos usar qualquer editor de código-fonte, como por exemplo o Visual Studio Code, pois ele possui ferramentas simples e práticas para lidar com essa situação. Com o arquivo que apresenta o conflito aberto, neste caso o arquivo é o index.html, conseguimos verificar as áreas conflituosas com cores diferentes e separadas por uma linha dupla (=======). Abaixo há um exemplo de como o VS Code interpreta os conflitos entre versões:

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”.

Vale destacar as opções que estão localizadas na parte superior do código conflituoso, que são respectivamente: Accept Current Changes (aceitar a mudança atual feita na branch master), Accept Incoming Changes (aceitar a mudança recebida realizada na outra branch), Accept Both Changes (aceitar ambas as modificações) e Compare Changes (comparar modificações). Ao clicar na opção que mais se encaixar para o seu cenário, o conflito será resolvido.

Outra maneira de resolução, é apagar manualmente a linha que deseja excluir e deixar apenas o código que deseja manter. Utilizando o exemplo da imagem apresentada acima, suponha que desejamos manter a versão com os dizeres: "Olá, Mundo!", será preciso então apagar os códigos referentes ao HEAD:

<<<<<<< HEAD
    <h1>Hello World!</h1>

=======

Dessa forma restará apenas os códigos referente ao new_branch, como mostro abaixo:

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

Reforço que ao trabalhar em equipe este tipo de situação pode ser corriqueira e de fato, é extremamente relevante saber como resolver os conflitos que surgirem ao trabalhar em diferentes branches, por isso reforço a importância do seu feedback para aprimorarmos nosso material.

Espero ter ajudado a solucionar o seu problema, e caso tenha dúvidas, conte conosco aqui no fórum para apoiar o seu desenvolvimento enquanto pessoa programadora!

Abraços!

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