Conflitos de mesclagem ocorrem quando alterações concorrentes são feitas na mesma linha de um arquivo ou quando uma pessoa edita um arquivo e outra pessoa exclui o mesmo arquivo. Consulte Conflitos de mesclagem.
Dica
Você pode usar o editor GitHub de conflitos para resolver conflitos de mesclagem de alterações de linha concorrentes entre branches que fazem parte de uma solicitação de pull. Consulte Resolvendo um conflito de mesclagem no GitHub.
Conflitos de merge de alterações diferentes na linha
Quando as alterações concorrentes afetam as mesmas linhas, escolha quais alterações manter e confirme a resolução.
-
Abra o terminal ou o Git Bash.
-
Navegue até o repositório Git local que tem o conflito de mesclagem.
cd REPOSITORY-NAME -
Liste os arquivos afetados pelo conflito de mesclagem. Neste exemplo, o arquivo styleguide.md tem um conflito de mesclagem.
$ git status > # On branch branch-b > # You have unmerged paths. > # (fix conflicts and run "git commit") > # > # Unmerged paths: > # (use "git add <file>..." to mark resolution) > # > # both modified: styleguide.md > # > no changes added to commit (use "git add" and/or "git commit -a") -
Abra seu editor de texto preferido, como Visual Studio Code, e navegue até o arquivo que tem conflitos de mesclagem.
-
Pesquise no arquivo o marcador
<<<<<<<de conflito. As alterações do HEAD ou do branch base aparecem depois<<<<<<< HEAD, seguidas por=======, as alterações do outro branch e>>>>>>> BRANCH-NAME.If you have questions, please <<<<<<< HEAD open an issue ======= ask your question in IRC. >>>>>>> branch-a -
Decida se você deseja manter apenas as alterações do seu branch, manter apenas as alterações do outro branch, ou fazer uma nova alteração, que pode incorporar alterações de ambos os branches. Exclua os marcadores de conflito
<<<<<<<,=======,>>>>>>>e faça as alterações desejadas na mesclagem final. Por exemplo, você pode manter ambas as alterações:If you have questions, please open an issue or ask in our IRC channel if it's more urgent. -
Preparar suas alterações.
git add . -
Envie as alterações com um comentário.
git commit -m "Resolve merge conflict by incorporating both suggestions"
Agora você pode mesclar os branches na linha de comando ou enviar suas alterações por push para o repositórioGitHub remoto e mesclar as alterações em uma solicitação de pull.
Conflitos de merge de arquivo removido
Quando um branch exclui um arquivo e outro branch edita o mesmo arquivo, escolha se deseja manter ou excluir o arquivo e confirme a resolução.
-
Abra o terminal ou o Git Bash.
-
Navegue até o repositório Git local que tem o conflito de mesclagem.
cd REPOSITORY-NAME -
Liste os arquivos afetados pelo conflito de mesclagem. Neste exemplo, o arquivo
README.mdtem um conflito de merge.$ git status > # On branch main > # Your branch and 'origin/main' have diverged, > # and have 1 and 2 different commits each, respectively. > # (use "git pull" to merge the remote branch into yours) > # You have unmerged paths. > # (fix conflicts and run "git commit") > # > # Unmerged paths: > # (use "git add/rm <file>..." as appropriate to mark resolution) > # > # deleted by us: README.md > # > # no changes added to commit (use "git add" and/or "git commit -a") -
Abra seu editor de texto preferido, como Visual Studio Code, e navegue até o arquivo que tem conflitos de mesclagem.
-
Decida se deseja manter o arquivo removido. Para adicioná-lo de volta ao repositório:
git add README.mdPara remover o arquivo do seu repositório:
$ git rm README.md > README.md: needs merge > rm 'README.md' -
Envie as alterações com um comentário.
$ git commit -m "Resolve merge conflict by keeping README.md file" > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d
Com os conflitos de mesclagem resolvidos, agora você pode enviar suas alterações por push para o repositório GitHub remoto ou mesclar sua solicitação de pull em seu branch base.