Compartilhar via


Resolução de conflitos

Um conflito ocorre quando são feitas alterações no mesmo item no workspace e no repositório do Git remoto. Quando ocorre um conflito, o status do Git diz que Conflito e Confirmado está desabilitado.

Screenshot of a report with a Git status that says conflict.

Importante

Esse recurso está em versão prévia.

Se você selecionar Atualizar quando existirem conflitos, uma mensagem notificará que é necessário resolver os conflitos antes de fazer a atualização.

Screenshot of error message from source control tab informing about conflicts.

Existem três maneiras de resolver um conflito:

Resolução de conflitos na interface do usuário

Selecione Atualizar tudo para conferir uma lista de todos os itens que têm conflitos. Em seguida, você pode selecionar a versão que será mantida para cada item. Para cada item em conflito, você pode optar por aceitar as alterações recebidas do repositório do Git ou manter a versão atual que está no espaço de trabalho.

Screenshot of UI to select which version of a conflicted item to keep.

  • Escolha Aceitar alterações recebidas para substituir as alterações no Espaço de Trabalho. As alterações no espaço de trabalho são perdidas e o status do Git é alterado para sincronizado se a importação for bem-sucedida.

  • Escolha Manter conteúdo atual para manter a versão que está no espaço de trabalho. Após a conclusão da atualização, o status do Git se tornará alterações não confirmadas, pois as alterações no espaço de trabalho ainda não foram confirmadas no branch.

Reverter para estados anteriores

Você pode reverter todo o espaço de trabalho ou GIT branch para o último estado sincronizado. Se você reverter o GIT branch para um commit anterior, ainda poderá ver as alterações feitas no branch não sincronizado. Se você reverter o espaço de trabalho, perderá todas as alterações feitas no espaço de trabalho desde a última confirmação.

Para reverter para o estado sincronizado anterior, execute uma das seguintes ações:

  • Utilize o comando Desfazer para retornar os itens em conflito no espaço de trabalho ao seu último estado sincronizado.
  • Reverta para o último estado sincronizado no Git usando o comando git revert no Azure DevOps.

Você também pode resolve conflitos desconectando e reconectando o workspace. Ao se reconectar, selecione a direção que deseja sincronizar. Observe que, no entanto, ao se reconectar, todos os itens do espaço de trabalho ou da ramificação são substituídos, e não apenas os que estão em conflito. Ele não retorna o workspace ou o branch para o último estado sincronizado. Em vez disso, ele substitui todo o conteúdo em um local com o conteúdo do outro.

Resolver conflito no git

Se você não tiver certeza de quais alterações foram feitas e qual versão escolher e não quiser reverter para um estado anterior, poderá tentar resolver o conflito no repositório do Git criando um novo branch e sincronizando-o com o atual.

Observação

Somente um administrador do espaço de trabalho pode reconectar o espaço de trabalho à nova ramificação.

  1. No painel Controle de origem, marcar um novo branch usando a última ID de branch sincronizada mostrada na parte inferior da tela

    Screenshot showing how to check out a new branch from the source control pane by selecting the down arrow.

    Screenshot of branch ID information shown on bottom of the screen.

    Esta etapa cria um novo branch do branch conflitante usando o último estado do Git sincronizado, antes que as alterações sejam feitas em conflito com suas alterações. É possível conferir suas alterações no painel Controle do código-fonte, mas não existe nada para ser atualizado no GIT branch. A ramificação fazer check-out mantém o estado atual do espaço de trabalho, de modo que as alterações não confirmadas são mantidas ao alterar a ramificação.

  2. Confirme suas alterações no novo branch. Esse novo branch agora tem as alterações feitas nos itens conectados a uma versão anterior do GIT branch que não está em conflito com suas alterações.

  3. No git, resolva os conflitos entre o branch original e o novo branch.

  4. No git, mescle o novo branch no branch original

  5. No Fabric, alternância do espaço de trabalho do Fabric para a ramificação original.