Resolvendo pequenos conflitos no git

Raphael Fabeni
Red Ventures Brasil - Tech
2 min readOct 9, 2019
Imagem de um poste com vários fios emaranhados.

Se você trabalha com desenvolvimento, provavelmente já deve ter que ter resolvido conflitos de arquivos em algum merge certo? Se ainda não passou por essa situação, a chance de isso acontecer em breve é muito grande.

Mas, qual a melhor maneira de resolvê-los? Difícil dizer. Cada pessoa tem a sua preferência e, claro, tudo também depende do tamanho do conflito.

Esses dias me deparei com um conflito grande em um arquivo que tinha alterado poucas linhas de código e com alterações simples (pequenas mudanças de atributos e valores). Mas aí vem a pergunta, como um arquivo com poucas alterações pode gerar um conflito tão chato? Em uma sprint, mais de uma pessoa acabou mexendo no mesmo arquivo: uma para pequenas alterações e outra para uma refatoração/mudança um pouco maior.

Quando me deparei com o arquivo, pensei em duas opções logo de cara: corrigir manualmente os conflitos no arquivo ou, como as minhas mudanças eram muito simples, usar o arquivo que veio do merge e aplicar as minhas mudanças por cima (perderia nem 1 minuto fazendo isso). Por questões de facilidade, decidi seguir pela última.

Mas, como faria isso? Rapidamente pensei em abrir o GitHub, pegar o arquivo do merge, copiar no meu arquivo localmente e aí fazer as minhas pequenas alterações. Foi aí, que me mostraram um comando que me facilitou fazer isso.

O comando acima simplesmente diz o seguinte: Hey git, por favor vamos usar o arquivo my-folder/my-file.js deles! Ou seja, o arquivo que veio na hora do merge. Podemos ainda querer o inverso, e usar o nosso arquivo, ou seja, a cópia local; nesse caso, trocaríamos o --theirs por --ours.

Existem diversas outras saídas e técnicas para correção de conflitos, mas para casos menores e que se tratem de alterações pontuais, essa saída pode lhe poupar algum tempo.

--

--

Raphael Fabeni
Red Ventures Brasil - Tech

Desenvolvedor, paulistano, música clássica e chá gelado. Não necessariamente nessa ordem.