Sobes.tech
Junior

Como resolve conflitos no Git?

sobes.tech IA

Resposta da IA

Quando se faz um pull ou rebase, ocorre uma fusão de alterações. Se o Git não conseguir resolver automaticamente as linhas em conflito nos ficheiros, ele marca-as com marcadores especiais:

<<<<<<< HEAD
linha do ramo atual
=======
linha do ramo que está a ser fundido
>>>>>>> feature/nova-funcionalidade

Para resolver o conflito:

  1. Abra o ficheiro em conflito num editor.

  2. Edite manualmente o ficheiro, escolhendo as partes necessárias de ambas as versões ou criando uma nova combinação.

  3. Elimine os marcadores <<<<<<<, =======, >>>>>>>.

  4. Guarde o ficheiro.

  5. Adicione o ficheiro resolvido ao índice com git add:

    # Adicionar um ficheiro específico
    git add caminho/para/ficheiro/resolvido.txt
    
    # Adicionar todos os ficheiros resolvidos
    git add .
    
  6. Faça um commit para completar a fusão:

    # Durante a fusão
    git commit -m "Resolução do conflito de merge"
    
    # Durante rebase
    git rebase --continue
    

Se houver muitos conflitos ou forem complexos, pode usar ferramentas de fusão:

git mergetool

Isto abrirá uma ferramenta gráfica que ajuda a percorrer os conflitos passo a passo.

Em caso de dificuldades durante o rebase, pode usar:

  • git rebase --abort: Cancelar o rebase e regressar ao estado anterior.
  • git rebase --skip: Ignorar o commit em conflito atual (pode ser perigoso).

É importante testar as alterações após resolver os conflitos para garantir que o código funciona corretamente.