Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Resolvendo Conflitos de Mesclagem | Trabalhando com Branches no Git
Git Essentials

Resolvendo Conflitos de Mesclagem

Deslize para mostrar o menu

Corrigindo Conflitos

No capítulo anterior, ocorreu um conflito de mesclagem, então agora é hora de resolvê-lo. Primeiro, abra o arquivo branch_learning.txt no editor Vim usando o seguinte comando:

vim branch_learning.txt
Abrindo o Vim

Se o Vim não estiver instalado, você pode usar outro editor de texto como nano ou atom, substituindo vim pelo nome do seu editor no comando acima.
No entanto, recomenda-se utilizar o Vim para facilitar o acompanhamento dos passos apresentados aqui.

Aqui está o arquivo aberto no editor Vim:

Arquivo com conflitos aberto no Vim

Agora é possível visualizar os marcadores de conflito que indicam as seções conflitantes.
Esses marcadores utilizam setas e símbolos especiais para destacar as diferenças entre os branches:

  • <<<<<<< HEAD: indica o início das alterações do branch atual (master);
  • =======: separa as alterações do branch atual (HEAD) e aquelas do branch que está sendo mesclado;
  • >>>>>>> feature/new-feature: indica o fim das alterações do branch que está sendo mesclado.

Para resolver o conflito, escolha uma das opções a seguir:

  • Manter as alterações do branch atual (master);
  • Manter as alterações do branch mesclado (feature/new-feature);
  • Editar manualmente o conteúdo.

Edite manualmente o arquivo combinando as alterações de ambos os branches seguindo os passos abaixo:

1. Entrar no modo de edição

Primeiro, entre no modo insert no Vim pressionando i. Isso permite editar o texto.

2. Edite a Seção em Conflito

Em seguida, combine as linhas de ambos os branches de forma sequencial. O conteúdo resultante do arquivo deve ser o seguinte:

New branch
New line from the master branch
New line from the feature branch
Resolvendo o conflito

3. Sair do Modo de Edição, Salvar e Sair

Pressione a tecla Escape para sair do modo de inserção. Em seguida, digite :wq e pressione Enter para salvar as alterações e sair do Vim:

Saindo do Vim

Comitando o arquivo

Como os conflitos foram resolvidos, adicione o arquivo branch_learning.txt à staging area e verifique o status:

git add branch_learning.txt
git status
Adicionando arquivo resolvido

O arquivo foi modificado e adicionado com sucesso à área de staging. Agora prossiga para commitar:

git commit
Commitando o arquivo

Mais uma vez, o editor de texto padrão é aberto (Vim neste caso) com a mensagem de commit padrão referente ao merge:

Mensagem de commit padrão

Entre no modo de inserção no Vim pressionando i, depois modifique a mensagem adicionando a linha Kept lines from both branches para descrever como os conflitos foram resolvidos.

Aqui está a mensagem de commit completa:

Merge branch 'feature/new-feature'

Kept lines from both branches

Para sair do modo de inserção, salvar as alterações e fechar o Vim, pressione a tecla Escape, depois digite :wq e pressione Enter.

Salvando a mensagem modificada e saindo do Vim

O commit foi realizado com sucesso e o conflito de merge está resolvido.

Mesclagem de três vias

Agora vamos analisar nosso histórico de commits como um gráfico (opção --graph) com uma linha por commit (opção --oneline):

git log --graph --oneline
Gráfico do histórico de commits

Aqui, é possível visualizar o commit de merge mais recente junto com a estrutura característica de um merge de três vias.

question mark

Qual é a forma recomendada de resolver um conflito de merge no Git?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 6
some-alt