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 tem…


This content originally appeared on DEV Community and was authored by Pachi 🪐 (she/her/ela)

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!


This content originally appeared on DEV Community and was authored by Pachi 🪐 (she/her/ela)


Print Share Comment Cite Upload Translate Updates
APA

Pachi 🪐 (she/her/ela) | Sciencx (2023-03-02T17:35:13+00:00) Como resolver conflitos de Merge no GitHub. Retrieved from https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/

MLA
" » Como resolver conflitos de Merge no GitHub." Pachi 🪐 (she/her/ela) | Sciencx - Thursday March 2, 2023, https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/
HARVARD
Pachi 🪐 (she/her/ela) | Sciencx Thursday March 2, 2023 » Como resolver conflitos de Merge no GitHub., viewed ,<https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/>
VANCOUVER
Pachi 🪐 (she/her/ela) | Sciencx - » Como resolver conflitos de Merge no GitHub. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/
CHICAGO
" » Como resolver conflitos de Merge no GitHub." Pachi 🪐 (she/her/ela) | Sciencx - Accessed . https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/
IEEE
" » Como resolver conflitos de Merge no GitHub." Pachi 🪐 (she/her/ela) | Sciencx [Online]. Available: https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/. [Accessed: ]
rf:citation
» Como resolver conflitos de Merge no GitHub | Pachi 🪐 (she/her/ela) | Sciencx | https://www.scien.cx/2023/03/02/como-resolver-conflitos-de-merge-no-github/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.