Sobre conflitos de merge
Os conflitos de merge acontecem quando você faz merge de branches que têm commits concorrentes e o Git precisa da sua ajuda para decidir quais alterações incorporar n merge final.
Muitas vezes, o Git pode resolver diferenças entre branches e fazer merge deles automaticamente. Normalmente, as alterações são em linhas diferentes, ou até mesmo em arquivos diferentes, o que facilita o entendimento do merge pelos computadores. No entanto, às vezes, há alterações conflitantes que o Git não pode resolver sem a sua ajuda. Geralmente, os conflitos de merge acontecem quando as pessoas fazem alterações diferentes na mesma linha do mesmo arquivo ou quando uma pessoa edita um arquivo e outra pessoa exclui o mesmo arquivo.
Você deve resolver todos os conflitos de merge para poder fazer merge de uma pull request no GitHub Enterprise. Se tiver um conflito de merge entre o branch de comparação e o branch base em sua pull request você poderá exibir uma lista dos arquivos com alteração conflitantes acima do botão Merge pull request (Fazer merge da pull request). O botão Merge pull request (Fazer merge da pull request) permanecerá desativado até que você resolva todos os conflitos entre o branch de comparação e o branch base.
Resolver conflitos de merge
Para resolver um conflito de merge, é preciso editar manualmente o arquivo em conflito para selecionar as alterações que deseja manter no merge final. Há duas maneiras diferentes de resolver um conflito de merge:
- Se o conflito de merge foi causado pela concorrência de alterações na linha, como quando as pessoas fazem alterações diferentes na mesma linha do mesmo arquivo em diferentes branches no seu repositório Git, você poderá resolvê-lo no GitHub Enterprise usando o editor de conflitos. Para obter mais informações, consulte "Resolver um conflito de merge no GitHub".
- Quanto a todos os outros tipos de conflito de merge, você deve resolvê-los em um clone local do repositório e fazer push da alteração no seu branch do GitHub Enterprise. Você pode usar a linha de comando ou uma ferramenta como o GitHub Desktop para fazer push das alterações. Para obter mais informações, consulte "Resolver um conflito de merge na linha de comando".
Se você tiver um conflito de merge na linha de comando, não será possível fazer push das alterações locais no GitHub Enterprise até que o conflito de merge seja resolvido localmente no computador. Se você tentar fazer merge dos branches que têm um conflito de merge na linha de comando, uma mensagem de erro será exibida. Para obter mais informações, consulte "Resolver um conflito de merge usando a linha de comando".
$ git merge BRANCH-NAME> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result