Exemplo Prático
Cenário
Teremos um repositório Git com um branch principal chamado main
e um branch nova-feature
. Ambos os branches modificam três arquivos:
arquivo1.txt
→ Conflito (alterado em ambos os branches na mesma linha).arquivo2.txt
→ Conflito (alterado em ambos os branches na mesma linha).arquivo3.txt
→ Sem conflito (alterado apenas no branchnova-feature
).
Passo a Passo
Passo 1: Crie o Repositório e os Arquivos
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Agora, adicione os arquivos e faça o primeiro commit:
Passo 2: Crie e Modifique o Branch nova-feature
nova-feature
Crie o branch nova-feature
e faça alterações nele:
Altere os arquivos:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Adicione os arquivos alterados e faço o commit:
Passo 3: Modifique o Branch main
main
Volte para o branch main
e faça outras alterações nos mesmos arquivos:
Altere os arquivos:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Adicione os arquivos alterados e faço o commit:
Passo 4: Inicie o Merge
Agora, tente mesclar o branch nova-feature
no main
:
O Git responderá com um erro porque há conflitos:
📌 O Git mesclará automaticamente o arquivo3.txt
, mas os arquivos arquivo1.txt
e arquivo2.txt
precisarão ser resolvidos manualmente.
Passo 5: Verifique os Conflitos
Rode o comando:
Saída:
📌 O arquivo3.txt
já foi mesclado automaticamente e está pronto. Os outros dois precisam ser corrigidos.
Passo 6: Resolva os Conflitos
Agora você precisa corrigir os conflitos nos arquivos arquivo1.txt
e arquivo2.txt
.
Rode o comando:
Saída:
Isso significa que ambos os arquivos foram modificados em ambos os branches na mesma parte do código, e o Git não sabe qual versão escolher.
Corrija o arquivo1.txt
arquivo1.txt
Se abrir arquivo1.txt
, verá algo assim:
Aqui está o que essas marcações significam:
<<<<<<< HEAD
→ Parte que veio do branch atual (main
)=======
→ Separação entre as duas versões>>>>>>> nova-feature
→ Parte que veio do branchnova-feature
Agora, é preciso escolher como você quer resolver. Existem três opções:
Manter a versão do
main
Manter a versão do
nova-feature
Combinar as duas versões (uma abordagem comum)
Escolha a opção 3 e remova os marcadores (<<<<<<<
, =======
, >>>>>>>
).
Salve e feche o arquivo.
Corrija o arquivo2.txt
arquivo2.txt
Abra arquivo2.txt
e você verá algo parecido:
Novamente, existem três opções:
Manter a versão do
main
Manter a versão do
nova-feature
Combinar as duas versões
Escolha a opção 3 e removemos os marcadores (<<<<<<<
, =======
, >>>>>>>
).
Salve e feche o arquivo.
Agora os arquivos corrigidos devem estar assim:
arquivo1.txt
(resolvido)
arquivo2.txt
(resolvido)
Passo 7: Marque os Conflitos como Resolvidos
Adicionamos os arquivos à área de stage para sinalizar ao Git que os arquivos não possuem mais conflitos:
📌 O arquivo3.txt
já está pronto, então você não precisa mexer nele.
Passo 8: Finalize o Merge
Crie o commit de merge:
Agora o merge está concluído! 🚀
Passo 9: Conferir o Histórico
Rode:
Saída esperada:
O commit abc1234
representa o merge e contém:
Os arquivos corrigidos manualmente (
arquivo1.txt
earquivo2.txt
).O arquivo mesclado automaticamente (
arquivo3.txt
).
Last updated
Was this helpful?