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.

Captura de tela de um relatório com um status do Git que diz conflito.

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

Captura de tela da mensagem de erro da guia de controle do código-fonte informando sobre conflitos.

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.

Captura de tela da interface do usuário para selecionar qual versão de um item em conflito deve ser mantida.

  • 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 do código-fonte, faça check-out de um novo branch usando a última ID de branch sincronizada mostrada na parte inferior da tela

    Captura de tela mostrando como fazer check-out de um novo branch no painel de controle do código-fonte selecionando a seta para baixo.

    Captura de tela das informações de ID da filial mostradas na parte inferior da tela.

    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 há 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.