Como resolver conflitos de Merge no GitHub

pachicodes

Pachi 🥑

Posted on March 2, 2023

Como resolver conflitos de Merge no GitHub

Cá está você, uma pessoa iniciando em sua carreira de programação, e finalmente você tem a chance de trabalhar em um projeto colaborativo. Você vai tode feliz e com orgulho, dar merge na primeira issue em que você trabalhou. Mas ELE aparece. Sim, o temido Conflito de merge!

A primeira vez que eu me deparei com isso (e a segunda, e também na terceira e talvez na décima) eu confesso que dei uma surtadinha.

Hoje eu sei resolver esses conflitos (quase sempre) e vim ensinar pra vocês algumas maneiras de fazer isso.

Nota: As dicas abaixo são apenas para Conflitos de Merge, para conflitos da sua vida pessoal, por favor procure uma pessoal profissional em psicologia.

Quando o conflito acontece…

o branch tem conflitos para sere resolvidos

Respire fundo!

Eu sei, quando isso aparece pelas primeiras vezes, dá aquela sensação de que a gente fez algo de errado né?

E dá um super medo de fazer alguma besteira e apagar código alheio, mas respira. A gente vai resolver isso aqui.

O que aconteceu?

Antes de resolver os conflitos, é uma boa ideia tentar entender o porquê dele ter ocorrido.

Não, você não fez algo de errado (eu acho).

Sistemas de controle de versionamento, como o Git, são ferramentas super legais que te ajudam a saber o que aconteceu no seu código, mudanças que foram feitas, quem fez o quê.

Mas não é mágica, e às vezes ele precisa de uma ajudinha.

No geral, conflitos de merge acontecem quando duas ou mais pessoas fazem modificações que confundem o git, e ele não sabe qual das 2 opções aplicar, como quando alguém deleta um arquivo ou uma linha, mas outra pessoa que ainda não tem o código atualizado vai lá e edita o arquivo ou linha deletada.

No exemplo que eu estou usando, o problema é que duas pessoas (eu e meu alter ego) fizemos modificações diferentes na mesma linha do arquivo.

Vamos ajudar o git!

O que causa um conflito de merge é quando o git fica confuso como nos exemplos que mencionei acima, e nossa missão aqui é ajudar o git!

Hoje eu vou explicar como fazer isso dentro do Github, mas resolver conflitos dentro do VS Code é bem parecido.

No Github, quando o conflito acontece, nós vemos isso aqui:

os conflitos  tem que serresolvidos

Vamos começar clicando no botão no canto direito: Resolve conflicts.

Entendendo o conflito

Isso vai nos levar para o nosso arquivo conflituoso, vamos estudá lo:

conflitos

O Github é um fofo que nos mostra, em vermelho, onde está o conflito. Ele nos indica onde ele começa e onde acaba. O código conflitante começa depois do <<<<<<< main e termina antes do próximo <<<<<<< main.

Como mencionei, o motivo do conflito aqui é que duas pessoas fizeram mudanças diferentes na mesma linha.

No caso, a mudança da pessoa 1 está na linha 8, acima do ======= e a mudança da pessoa 2 está na linha 10, abaixo do =======

Resolvendo o conflito

Primeiramente temos que decidir qual das duas opções está correta. Nesse caso, eu quero que as duas mudanças sejam mantidas, as duas estão corretas, o único problema foi de estarem na mesma linha.

Para resolver esse conflito, mudamos o código entre os <<<<<<< main e deixamos ele da maneira esperada, removendo o =======

arrumando conflitos

Conferimos se é isso mesmo e se estiver certinho, removemos os dois <<<<<<< main

clique no canto uperior direito

Agora lá no canto superior direito, clicamos em Mark as resolved e comitamos o merge.

O Github vai te avisar que esse commit vai para main, tem certeza que ta ok?

eu entendo

Eu entendo, pode updatear a main Github!

E ta dã, podemos fazer nossa Pull Request! Parabéns!

não temos conflito

Conclusão

E ai, bora resolver aquele conflito de merge que faz uma semana que tá lá mas você finge que não existe? Haha

O exemplo que eu dei foi de um conflito mais simples, mas é a base para resolver conflitos maiores, então espero que te ajude!

💖 💪 🙅 🚩
pachicodes
Pachi 🥑

Posted on March 2, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Como resolver conflitos de Merge no GitHub
braziliandevs Como resolver conflitos de Merge no GitHub

March 2, 2023