Olá! No momento, esta página ainda está sendo desenvolvida ou traduzida. Para obter as informações mais recentes, acesse a documentação em inglês.
Versão do artigo: Enterprise Server 2.15

Esta versão do GitHub Enterprise será descontinuada em Esta versão do GitHub Enterprise foi descontinuada em 2019-10-16. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Resolver um conflito de merge usando a linha de comando

Você pode resolver conflitos de merge usando a linha de comando e um editor de texto.

Os conflitos de merge 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. Para obter mais informações, consulte "Sobre conflitos de merge".

Dica: você pode usar o editor de conflitos no GitHub Enterprise para resolver conflitos de merge de alterações diferentes na linha entre branches que fazem parte de uma pull request. Para obter mais informações, consulte "Revolver um conflito de merge no GitHub".

Conflitos de merge de alterações diferentes na linha

Para resolver um conflito de merge causado por alterações diferentes na linha, você deve escolher quais alterações dos diferentes branches incorporar em um novo commit.

Por exemplo, se você e outra pessoa editarem as mesmas linhas do arquivo styleguide.md em branches diferentes do mesmo repositório Git, você receberá um erro de conflito de merge quando tentar fazer merge desses branches. Você deve resolver esse conflito de merge com um novo commit antes de fazer merge desses branches.

  1. Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.

  2. Navegue até o repositório Git local que tem o conflito de merge.

    cd REPOSITORY-NAME
  3. Gere uma lista dos arquivos afetados pelo conflito de merge. In this example, the file styleguide.md has a merge conflict.

    $ git status
    > # On branch branch-b
    > # You have unmerged paths.
    > #   (fix conflicts and run "git commit")
    > #
    > # Unmerged paths:
    > #   (use "git add ..." to mark resolution)
    > #
    > # both modified:      styleguide.md
    > #
    > no changes added to commit (use "git add" and/or "git commit -a")
  4. Abra o editor de texto de sua preferência, como o Atom, e navegue até o arquivo que tem conflitos de merge.

  5. To see the beginning of the merge conflict in your file, search the file for the conflict marker <<<<<<<. When you open the file in your text editor, you'll see the changes from the HEAD or base branch after the line <<<<<<< HEAD. Next, you'll see =======, which divides your changes from the changes in the other branch, followed by >>>>>>> BRANCH-NAME. In this example, one person wrote "open an issue" in the base or HEAD branch and another person wrote "ask your question in IRC" in the compare branch or branch-a.

    If you have questions, please
    <<<<<<< HEAD
    open an issue
    =======
    ask your question in IRC.
    >>>>>>> branch-a
  6. Decide if you want to keep only your branch's changes, keep only the other branch's changes, or make a brand new change, which may incorporate changes from both branches. Delete the conflict markers <<<<<<<, =======, >>>>>>> and make the changes you want in the final merge. In this example, both changes are incorporated into the final merge:

    If you have questions, please open an issue or ask in our IRC channel if it's more urgent.
  7. Adicione ou faça stage das alterações.

    $ git add .
  8. Faça o commit das suas alterações com um comentário.

    $ git commit -m "Resolved merge conflict by incorporating both suggestions."

Agora você pode fazer merge dos branches na linha de comando ou fazer push das alterações para o repositório remoto no GitHub Enterprise e fazer merge das alterações em uma pull request.

Conflitos de merge de arquivo removido

Para resolver um conflito de merge causado por alterações concorrentes em um arquivo, quando uma pessoa exclui um arquivo em um branch e outra pessoa edita o mesmo arquivo, você deve escolher se deseja excluir ou manter o arquivo removido em um novo commit.

Por exemplo, se você editou um arquivo, como o README.md, e outra pessoa removeu o mesmo arquivo em outro branch no mesmo repositório Git, você receberá um erro de conflito de merge quando tentar fazer merge desses branches. Você deve resolver esse conflito de merge com um novo commit antes de fazer merge desses branches.

  1. Abra Terminal (Terminal)Terminal (Terminal)Git Basho terminal.

  2. Navegue até o repositório Git local que tem o conflito de merge.

    cd REPOSITORY-NAME
  3. Gere uma lista dos arquivos afetados pelo conflito de merge. Neste exemplo, o arquivo README.md tem um conflito de merge.

    $ git status
    > # On branch master
    > # Your branch and 'origin/master' 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 ..." as appropriate to mark resolution)
    > #
    > # deleted by us:   README.md
    > #
    > # no changes added to commit (use "git add" and/or "git commit -a")
  4. Abra o editor de texto de sua preferência, como o Atom, e navegue até o arquivo que tem conflitos de merge.

  5. Decida se você deseja manter o arquivo removido. Você pode ver as alterações mais recentes feitas no arquivo removido no editor de texto.

    Para adicionar o arquivo removido de volta ao repositório:

    $ git add README.md

    Para remover o arquivo do seu repositório:

    $ git rm README.md
    > README.md: needs merge
    > rm 'README.md'
  6. Faça o commit das suas alterações com um comentário.

    $ git commit -m "Resolved merge conflict by keeping README.md file."
    > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d

Agora você pode fazer merge dos branches na linha de comando ou fazer push das alterações para o repositório remoto no GitHub Enterprise e fazer merge das alterações em uma pull request.

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato