Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Quando você mesclar ou rebasear, você está dizendo ao Git para integrar as alterações feitas em uma ramificação com as alterações feitas em outra. Muitas vezes, o Git conclui uma mesclagem ou rebase automaticamente sem a sua ajuda. No entanto, se o Git descobrir que uma alteração feita em uma ramificação está em conflito com uma alteração feita em outra, ele solicitará que você resolva o conflito. Um conflito de mesclagem pode ocorrer quando as ramificações mescladas editam a mesma linha de arquivo de forma diferente ou quando uma ramificação modifica um arquivo e outra ramificação o exclui. O processo de resolução de conflitos de mesclagem é aplicável tanto à mesclagem quanto à rebase do Git.
Você pode resolver conflitos de mesclagem no Visual Studio ou usando a linha de comando e qualquer editor de texto.
Para obter uma visão geral do fluxo de trabalho do Git, consulte o tutorial do Azure Repos Git.
Pré-requisitos
Categoria | Requerimentos |
---|---|
Acesso ao projeto | Membro de um projeto . |
Permissões | - Ver código em projetos privados: Acesso pelo menos Básico. - Clone ou contribua para o código em projetos privados: Membro do grupo de segurança Contributors ou permissões correspondentes no projeto. - Definir permissões de ramo ou repositório: Gerir permissões para o ramo ou repositório. - Alterar ramificação padrão: Editar políticas e permissões para o repositório. - Importar um repositório: Membro do grupo de segurança Administradores de Projeto ou com permissão de Criar repositório ao nível do projeto Git definida como Permitir. Para obter mais informações, consulte Definir permissões do repositório Git. |
Serviços | Repos ativado. |
Ferramentas | Opcional. Utilize os comandos az repos: Azure DevOps CLI. |
Observação
Em projetos públicos, os usuários com acesso Partes Interessadas têm acesso total aos repositórios do Azure, incluindo visualização, clonagem e contribuição para o código.
Categoria | Requerimentos |
---|---|
Acesso ao projeto | Membro de um projeto . |
Permissões | - Visualização de código: Pelo menos acesso básico. - Clone ou contribua para o código: Membro do grupo de segurança Contributors ou com permissões correspondentes no projeto. |
Serviços | Repos ativado. |
Compreender os conflitos de mesclagem
A mesclagem ou rebase do Git integra confirmações de uma ramificação de origem à sua ramificação local atual (ramificação de destino). O Git mesclar executa uma de avanço rápido ou uma de avanço rápido mesclagem. A fusão sem avanço rápido também é conhecida como uma fusão de três vias ou fusão verdadeira. Git rebase é outro tipo de fusão. Esses tipos de mesclagem são mostrados no diagrama a seguir.
Para a mesclagem do Git, se a ponta da ramificação de destino existir dentro da ramificação de origem, o tipo de mesclagem padrão será uma mesclagem rápida. Caso contrário, o tipo de mesclagem padrão será uma mesclagem sem avanço rápido.
Uma mesclagem de de avanço rápido nunca pode ter um conflito de mesclagem porque o Git não aplicará uma mesclagem de avanço rápido se a ponta da ramificação de destino tiver divergido da ramificação de origem. Por padrão, o Git usa uma mesclagem de avanço rápido sempre que possível. Por exemplo, o Git aplicará uma mesclagem de avanço rápido em uma ramificação local que você só atualiza extraindo de sua ramificação homóloga remota.
Uma mesclagem sem avanço rápido de gera uma nova ramificação de destino de "confirmação de mesclagem" que integra as alterações de ramificação de origem com as alterações de ramificação de destino. As alterações aplicáveis são aquelas feitas após o último commit comum a ambas as branches. No diagrama anterior, o commit C é o último commit comum em ambos os ramos. Se qualquer alteração de ramificação de origem entrar em conflito com qualquer alteração de ramificação de destino, o Git solicitará que você resolva o conflito de mesclagem. A confirmação de mesclagem (L) contém as alterações integradas de ramificação de origem e ramificação de destino. As dicas de ramificação de origem e destino (K e E) são os pais da confirmação de mesclagem. No histórico de confirmação de da sua ramificação, uma confirmação de mesclagem é um marcador útil para uma operação de mesclagem e mostra claramente quais ramificações foram mescladas.
O Git rebase resequencia o histórico de confirmações da ramificação de destino para que ela contenha todas as confirmações de ramificação de origem, seguidas por todas as confirmações de ramificação de destino desde a última confirmação comum. No diagrama anterior, o commit C é o último commit comum em ambos os ramos. Outra maneira de visualizá-lo é que uma rebase reproduz as alterações na ramificação de destino sobre o histórico da ramificação de origem. Se qualquer alteração de ramificação de origem entrar em conflito com qualquer alteração de ramificação de destino, o Git solicitará que você resolva o conflito de mesclagem. Assim como acontece com a mesclagem rápida, uma rebase não cria uma confirmação de mesclagem. Notavelmente, uma rebase altera a sequência das confirmações de ramificação de destino existentes, o que não é o caso das outras estratégias de mesclagem. No diagrama anterior, commit K' contém as mesmas alterações que K, mas tem um novo ID de commit porque ele se vincula de volta para commit E em vez de C.
A mesclagem e a rebase do Git modificam apenas a ramificação de destino — a ramificação de origem permanece inalterada. Quando você encontrar um ou mais conflitos de mesclagem, deverá resolvê-los para concluir a mesclagem ou a rebaseação. Ou, você pode cancelar a operação de mesclagem/rebase e retornar a ramificação de destino ao seu estado anterior.
Para obter mais informações sobre opções e estratégias de mesclagem, consulte o manual de referência do Git e estratégias de mesclagem do Git.
Quando resolver conflitos de mesclagem
Os de mesclagem do Git e os de rebase do Git são amplamente usados no fluxo de trabalho do Git . Ao trabalhar em um recurso local ou ramificação de correção de bugs, é prática comum:
- Mantenha sua ramificação
main
local atualizada com sua contraparte remota, puxando periodicamente para buscar e mesclar confirmações remotas. - Integre as atualizações da ramificação local
main
na sua ramificação de funcionalidades local usando um rebase ou merge. - Faça backup de seu trabalho na ramificação de recurso local empurrando- para a ramificação remota correspondente.
- Após a conclusão da funcionalidade, crie um pedido pull para mesclar a sua ramificação de funcionalidade remota na ramificação remota
main
.
Ao integrar frequentemente alterações remotas em seu repositório local, você pode ficar ciente do trabalho recente de outras pessoas e resolver prontamente quaisquer conflitos de mesclagem que surjam.
Resolver conflitos de mesclagem
O processo de resolução de conflitos de mesclagem é aplicável tanto à mesclagem do Git quanto à rebase do Git. Embora as etapas a seguir descrevam como resolver conflitos de mesclagem durante uma mesclagem, você também pode resolver conflitos de mesclagem durante uma rebase.
Sugestão
Se a ramificação de origem for uma ramificação de rastreamento remoto, certifique-se de que a ramificação esteja up-to-date executando um de busca de Git antes de uma mesclagem. Ou execute o comando pull do Git, que combina uma busca do Git com uma mesclagem do Git.
- Visual Studio 2022
- Visual Studio 2019 - Menu do Git
- Visual Studio 2019 - Explorador de Equipa
- Linha de comando Git
O Visual Studio 2022 fornece uma experiência de controle de versão do Git usando o menu Git, Alterações do Git e por meio de menus de contexto no Gerenciador de Soluções. O Visual Studio 2019 versão 16.8 também oferece a interface de usuário do Team Explorer Git. Para obter mais informações, consulte a guia Visual Studio 2019 - Team Explorer .
No painel Ramificações da janela Repositório Git, faça checkout da ramificação de destino. Em seguida, clique com o botão direito do mouse na ramificação de origem e escolha Mesclar <ramificação de origem> em <ramificação de destino>.
O Visual Studio irá notificá-lo se o Git interrompeu a mesclagem devido a conflitos. Nesse caso, você pode resolver os conflitos ou cancelar a mesclagem e retornar ao estado de pré-mesclagem. A seção Alterações não mescladas da janela Git Changes lista os arquivos com conflitos de mesclagem. Para um arquivo com conflitos de mesclagem em seu conteúdo, clique duas vezes no arquivo para abri-lo no editor de mesclagem.
No editor de mesclagem, o painel de entrada mostra a versão do arquivo de ramificação de origem, o painel atual mostra a versão do arquivo de ramificação de destino e o painel de resultado mostra o arquivo de mesclagem resultante. Para aplicar alterações específicas na ramificação de origem ou de destino, marque a caixa de seleção ao lado da(s) linha(s) conflitante(s) que você deseja manter. Você também pode editar diretamente o arquivo de mesclagem no painel Resultado. Escolha Aceitar Fusão após resolver todos os conflitos de fusão no arquivo atual. Repita esta etapa para cada arquivo com conflitos de conteúdo.
Para um arquivo que foi editado em uma ramificação e excluído na outra, clique com o botão direito do mouse no arquivo e selecione qual ação de ramificação você deseja.
Na janela Alterações do Git, insira uma mensagem de confirmação e escolha Confirmar alteração preparada para concluir a mesclagem, depois de resolver todos os conflitos de mesclagem de todos os arquivos.