Código do Visual Studio como resolver conflitos de mesclagem com git?


106

Tentei fundir meu branch com outro branch e houve um conflito de fusão. No Visual Studio Code (versão 1.2.1) resolvi todos os problemas, no entanto, quando tento confirmá-lo, ele continua me apresentando esta mensagem:

Você deve primeiro resolver as alterações não mescladas antes de confirmar suas alterações.

Tentei pesquisar no Google, mas não consigo descobrir por que não me deixa cometer minhas alterações, todos os conflitos desapareceram.


1
Embora o que você disse esteja correto, isso não resolve o problema da pergunta. Eu declarei explicitamente que já resolvi todos os conflitos de mesclagem na questão.
annedroiid

Respostas:


109

Com o VSCode, você pode encontrar facilmente os conflitos de mesclagem com a seguinte IU. insira a descrição da imagem aqui

(se você não tiver a barra superior, defina "editor.codeLens": trueem Preferências do usuário)

Ele indica a mudança atual que você tem e a mudança recebida do servidor. Isso torna mais fácil resolver os conflitos - basta pressionar os botões acima <<<< HEAD.

Se você tiver várias alterações e quiser aplicar todas elas de uma vez - abra a paleta de comandos (Exibir -> Paleta de comandos) e comece a digitar mesclar - várias opções aparecerão Merge Conflict: Accept Incoming, incluindo , etc.


1
você recebeu a atualização mais recente! vou mostrar em cada linha
Sajeetharan


1
Como obter essas mesclagens, resolver opções de conflito no código do Visual Studio.
user630209

1
como habilitar isso, algum atalho? Não consigo ver essa opção no meu arquivo de conflito.
user630209

1
@RyeGuy Essas opções são mostradas através do CodeLens, então você tem o CodeLens para ser habilitado (consulte code.visualstudio.com/Docs/editor/… ).
Geri Borbás

71

Após tentativa e erro, descobri que você precisa preparar o arquivo que teve o conflito de mesclagem e, em seguida, pode confirmar a mesclagem.


1
Sim, correto. Qualquer commit, seja um conflito de mesclagem ou seu commit local que você está tentando enviar, precisa ser testado antes de você poder enviar esse commit.
surendrapanday

1
Para quem está confuso se git add .não organizar todos os arquivos, verifique se você está no diretório raiz do projeto. Levei algum tempo para descobrir isso. Em seguida, git add .para organizar todos os arquivos, e então me permitiugit merge --continue
bensadiku

E depois de resolver o conflito de mesclagem, você deve primeiro SALVAR o arquivo em conflito antes de preparar as alterações mescladas.
nclark

22

Para quem está com dificuldade em encontrar os "botões de mesclagem".

O pequeno ícone de lâmpada com opções de mesclagem só aparece se você clicar precisamente no "marcador de conflito de mesclagem"

<<<<<<<

Etapas (no código VS 1.29.x):


19
  1. Clique no botão "Source Control" à esquerda.
  2. Veja MERGE CHANGES na barra lateral.
  3. Esses arquivos têm conflitos de mesclagem.

Código VS> Controle de fonte> Alterações de mesclagem (exemplo)


1
Eu costumava ter as opções "Aceitar alteração atual | Aceitar alteração recebida ...", mas agora essas opções simplesmente desapareceram da linha, alguma idéia de como revelar essas opções novamente?
jet_choong

15

A mensagem de erro que você está recebendo é porque o Git ainda pensa que você não resolveu os conflitos de mesclagem. Na verdade, você já fez isso, mas precisa informar ao Git que fez isso adicionando os arquivos resolvidos ao índice.

Isso tem o efeito colateral de que você pode simplesmente adicionar os arquivos sem resolver os conflitos, e o Git ainda pensaria que você o fez. Portanto, você deve ser diligente em certificar-se de que realmente resolveu os conflitos. Você pode até mesmo executar o build e testar o código antes de confirmar.


3

Para VS Code 1.38 ou se você não conseguir encontrar o botão "lâmpada". Preste muita atenção ao texto acinzentado acima dos conflitos; há uma lista de ações que você pode realizar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.