Resolução de conflitos
Um conflito ocorre quando são feitas alterações no mesmo item no espaço de trabalho e no repositório Git remoto. Quando ocorre um conflito, o status do Git diz Conflito e Confirmação está desativado.
Quando você seleciona Atualizar quando há conflitos, uma mensagem notifica que você precisa resolver os conflitos antes de poder atualizar.
Existem três formas de resolver um conflito:
- Selecione qual versão manter através da interface do usuário.
- Reverta o espaço de trabalho ou o repositório Git para um estado sincronizado anterior.
- Resolva o conflito no Git.
Resolver conflito na interface do usuário
Selecione Atualizar tudo para ver uma lista de todos os itens com conflitos. Em seguida, você pode selecionar qual versão manter para cada item. Para cada item em conflito, você pode optar por aceitar as alterações recebidas do repositório Git ou manter a versão atual que está no espaço de trabalho.
Escolha Aceitar alterações de entrada para substituir as alterações no espaço de trabalho. As alterações do espaço de trabalho são perdidas e o status do Git muda para sincronizado se a importação for bem-sucedida.
Escolha Manter conteúdo atual para manter a versão atualmente no espaço de trabalho. Após a conclusão da atualização, o status do Git se torna alterações não confirmadas, pois as alterações no espaço de trabalho ainda não estão confirmadas na ramificação.
Reverter para um estado anterior
Você pode reverter todo o espaço de trabalho ou ramificação do Git para o último estado sincronizado. Se você reverter a ramificação do Git para uma confirmação anterior, ainda poderá ver as alterações feitas na ramificação não sincronizada. 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:
- Use o comando Desfazer para retornar itens conflitantes no espaço de trabalho ao seu último estado sincronizado.
- Reverta para o último estado sincronizado no Git usando o
git revert
comando no Azure DevOps.
Você também pode resolver conflitos desconectando e reconectando o espaço de trabalho. Quando voltar a ligar, selecione a direção que pretende sincronizar. No entanto, observe que, quando você se reconecta, ele substitui todos os itens no espaço de trabalho ou ramificação e não apenas os conflitantes. Ele não retorna o espaço de trabalho ou ramificação para o último estado sincronizado. Em vez disso, substitui todo o conteúdo de um local pelo conteúdo do outro.
Resolver conflitos 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, você pode tentar resolver o conflito no repositório Git criando uma nova ramificação, resolvendo o conflito nessa ramificação e sincronizando-o com o atual.
Nota
Somente um administrador de espaço de trabalho pode reconectar o espaço de trabalho à nova ramificação.
No painel de controle Origem, confira uma nova ramificação usando o último ID de ramificação sincronizado mostrado na parte inferior da tela
Esta etapa cria uma nova ramificação a partir da ramificação em conflito usando o último estado sincronizado do Git, antes de serem feitas alterações que entrem em conflito com suas alterações. Você pode ver suas alterações no painel de controle Código-fonte, mas não há nada a atualizar da ramificação do Git. A ramificação de check-out mantém o estado atual do espaço de trabalho, portanto, as alterações não confirmadas são mantidas ao alterar a ramificação.
Confirme suas alterações na nova ramificação. Essa nova ramificação agora tem as alterações feitas nos itens conectados a uma versão anterior da ramificação do Git que não entra em conflito com suas alterações.
No git, resolva os conflitos entre o ramo original e o novo ramo.
No git, mescle a nova ramificação na ramificação original
Na Malha, alterne o espaço de trabalho de volta para a ramificação original.