Atualizar código com busca, mesclagem e pull

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Quando houver vários colaboradores em um projeto, mantenha seu Repositório do Git local atualizado baixando e integrando o trabalho que outras pessoas carregaram no repositório remoto do projeto. Estes comandos do Git atualizam seu repositório local:

  • A busca do Git baixa todos os novos commits que outras pessoas carregaram no repositório remoto. Os branches de rastreamento remoto no cache do repositório local são atualizados. Os branches locais permanecem inalterados.
  • A mesclagem do Git integra commits de um ou mais branches de origem em um branch de destino.
  • A troca de base do Git integra commits de um branch de origem a um branch de destino, mas usa uma estratégia diferente da mesclagem do Git.
  • O pull do Git executa uma busca e, em seguida, uma mesclagem ou troca de base para integrar commits buscados ao branch local atual.

O Visual Studio usa um subconjunto desses comandos de Git ao sincronizar seu repositório local com um repositório remoto.

Para obter uma visão geral do fluxo de trabalho do Git, consulte Tutorial do Git do Azure Repos.

Este artigo fornece procedimentos para as seguintes tarefas:

  • Baixar alterações com busca
  • Atualizar branches com mesclagem ou troca de base
  • Baixar alterações e atualizar branches com pull

Baixar alterações com busca

A busca do Git baixa commits de branch remoto e objetos de arquivo referenciados que não existem em seu repositório local e atualiza os branches de acompanhamento remoto no cache do repositório local. Os branches de acompanhamento remoto são cópias somente leitura armazenadas em cache localmente de branches remotos e não são seus branches locais. A busca do Git não atualiza seus branches locais. Por exemplo, se um repositório remoto designado por origin tiver um bugfix3 branch, a busca de Git atualizará o branch de acompanhamento remoto indicado origin/bugfix3 e não o branch local bugfix3. Você pode usar branches de acompanhamento remoto para:

  • Comparar um branch de acompanhamento remoto com um branch local para examinar as alterações buscadas.
  • Mesclar um branch de acompanhamento remoto em um branch local.
  • Criar um novo branch local a partir de um branch de acompanhamento remoto.

O Visual Studio 2022 fornece uma experiência de controle de versão do Git usando o menu Git, as Alterações do Git e através dos menus de contexto no Gerenciador de Soluções. O Visual Studio 2019, versão 16.8, também oferece a interface do usuário do Git do Team Explorer. Para saber mais, consulte a guia Visual Studio 2019 - Team Explorer.

  1. Na janela Alterações do Git , escolha Buscar. Em seguida, selecione saída/entrada para abrir a janela Repositório do Git .

    Captura de tela dos botões Buscar e link de Entrada na janela 'Alterações do Git' do Visual Studio 2019.

    Você também pode escolher Buscar no menu Git.

    Captura de tela da opção Buscar no menu Git no Visual Studio 2019.

  2. Na janela Repositório do Git , os commits buscados aparecem na seção Entrada. Selecione um commit buscado para ver a lista de arquivos alterados nesse commit. Selecione um arquivo alterado para ver uma exibição dif de conteúdo alterado.

    Captura de tela do menu Repositório do Git no Visual Studio 2019.

Dica

ABusca não excluirá branches de acompanhamento remoto no cache do repositório local que não têm mais um equivalente remoto. Para configurar o Visual Studio para remover branches de acompanhamento remoto obsoletos durante uma Busca:

  • Selecione Ferramentas>Opções>Controle de Fonte>Configurações Globais de Git.
  • Defina a opção Remover branches remotos durante a busca para True.

Após uma busca do Git, você pode comparar um branch local com seu branch de acompanhamento remoto correspondente para ver o que mudou no branch remoto. Se você decidir atualizar seu branch local atual com alterações buscadas, poderá executar uma mesclagem ou troca de base do Git. Ou você pode executar o pull do Git, que combina uma busca do Git com uma mesclagem ou troca de base do Git. A mesclagem do Git e a troca de base do Git atualizam um branch de destino aplicando commits de um branch de origem a ele. No entanto, a mesclagem do Git e a troca de base do Git usam estratégias diferentes. Para obter mais informações, consulte Atualizar branches com mesclagem ou troca de base e Quando trocar base versus mesclar.

Atualizar branches com mesclagem ou troca de base

A mesclagem do Git e a troca de base do Git integram commits de um branch de origem ao branch local atual (branch de destino). A mesclagem do Git executa uma mesclagem de encaminhamento rápido ou sem encaminhamento rápido . A mesclagem sem encaminhamento rápido também é conhecida como mesclagem three-way ou mesclagem true. A troca de base do Git é outro tipo de mesclagem. Esses tipos de mesclagem são mostrados no diagrama a seguir.

Diagrama mostrando os commits antes e depois ao usar mesclagem e troca de base.

A mesclagem do Git e a troca de base do Git são amplamente usadas no fluxo de trabalho do Git. Ao trabalhar em um recurso local ou em um branch de correção de bugs, é uma prática comum:

  1. Manter seu mainbranch local atualizado com seu equivalente remoto efetuando pull periodicamente para buscar e mesclar commits remotos.
  2. Integrar as atualizações de mainbranch local ao branch de recurso local usando uma troca de base ou mesclagem.
  3. Faça backup do trabalho no branch de recurso local enviando-o por push para o branch remoto correspondente.
  4. Após a conclusão do recurso, crie uma solicitação de pull para mesclar o branch de recurso remoto no mainbranch remoto.

Essa abordagem ajuda você a:

  • Lembrar-se do trabalho recente de outras pessoas que podem afetar seu trabalho.
  • Imediatamente resolver quaisquer conflitos entre seu trabalho e o de outras pessoas.
  • Aplicar seu novo recurso sobre o conteúdo atualizado do projeto.
  • Obter uma revisão de solicitação de pull do seu trabalho.

Mesclar

Para a mesclagem do Git, se a dica do branch de destino existir no branch de origem, o tipo de mesclagem padrão será uma mesclagem de encaminhamento rápido. Caso contrário, o tipo de mesclagem padrão será uma mesclagem sem encaminhamento rápido.

Uma mesclagem de encaminhamento rápido do Git nunca pode ter um conflito de mesclagem, porque o Git não aplicará uma mesclagem de encaminhamento rápido se a dica do branch de destino tiver divergido do branch de origem. Por padrão, o Git usa uma mesclagem de encaminhamento rápido sempre que possível. Por exemplo, o Git aplicará uma mesclagem de encaminhamento rápido em um branch local que você atualiza apenas fazendo pull de seu branch de equivalente remoto.

Uma mesclagem do Git sem encaminhamento rápido gera uma nova "confirmação de mesclagem" do branch de destino que integra as alterações do branch de origem com as alterações do branch de destino. As alterações aplicáveis são aquelas feitas após a última confirmação que é comum a ambos os branches. No diagrama anterior, commit C é a última confirmação comum em ambos os branches. Se qualquer alteração de branch de origem entrar em conflito com qualquer alteração de branch de destino, o Git solicitará que você resolva o conflito de mesclagem. A confirmação de mesclagem (L) contém o branch de origem integrado e as alterações de branch de destino. As dicas de branch de origem e de destino (K e E) são os pais da confirmação de mesclagem. No histórico de commits do branch, uma confirmação de mesclagem é um marcador útil para uma operação de mesclagem e mostra claramente quais branches foram mesclados.

A mesclagem do Git modifica apenas o branch de destino. O branch de origem permanece inalterado. Ao encontrar um ou mais conflitos de mesclagem, você deve resolve-los para concluir a mesclagem. Ou você pode cancelar a operação de mesclagem e retornar o branch de destino ao estado anterior.

Para obter mais informações sobre opções e estratégias de mesclagem, consulte o manual de referência do Git e as estratégias de mesclagem do Git.

Dica

Se o branch de origem for um branch de acompanhamento remoto, verifique se o branch está atualizado executando uma busca do Git antes da mesclagem.

  1. Escolha Gerenciar Branches do Git > na barra de menus para abrir a janela Repositório do Git.

    Captura de tela da opção Gerenciar Branches no menu Git no Visual Studio 2019.

  2. Na janela Repositório do Git , clique com o botão direito do mouse no branch de destino e selecione Check-out.

    Captura de tela da opção Check-out na janela Repositório do Git no Visual Studio 2019.

  3. Clique com o botão direito do mouse no branch de origem e selecione Mesclar< branch de origem> em <branch de destino>.

    Captura de tela da opção Mesclar na janela Repositório do Git no Visual Studio 2019.

  4. O Visual Studio exibirá uma mensagem de confirmação após uma mesclagem bem-sucedida.

    Captura de tela da mensagem de confirmação de mesclagem na janela Repositório do Git no Visual Studio 2019.

    Se a mesclagem for interrompida devido a conflitos de mesclagem, o Visual Studio o notificará. Você pode resolver os conflitos ou cancelar a mesclagem e retornar ao estado de pré-mesclagem.

    Captura de tela da mensagem de conflito de mesclagem na janela Repositório do Git no Visual Studio 2019.

Trocar base

A troca de base do Git sequencia novamente o histórico de confirmação do branch de destino para que ele contenha todas as confirmações do branch de origem, seguido por todas as confirmações do branch de destino desde a última confirmação comum. Outra maneira de exibi-lo é que uma troca de base do Git reproduz as alterações no branch de destino sobre o histórico do branch de origem. Se qualquer alteração de branch de origem entrar em conflito com qualquer alteração de branch de destino, o Git solicitará que você resolva o conflito de mesclagem. A troca de base do Git não cria uma confirmação de mesclagem. Notavelmente, a troca de base do Git altera a sequência de confirmações de branch 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 do commit porque ele é vinculado de volta ao commit E em vez de C.

A troca de base do Git modifica apenas o branch de destino. O branch de origem permanece inalterado. Ao encontrar um ou mais conflitos de mesclagem, você deve resolve-los para concluir a troca de base. Ou você pode cancelar a operação de troca de base e retornar o branch de destino ao estado anterior.

Se você for a única pessoa trabalhando em seu recurso ou branch de correção de bug, considere usar a troca de base do Git para integrar novas main confirmações de branch a ele. Caso contrário, use a mesclagem do Git. Para obter mais informações sobre a troca de base do Git e quando usá-la, consulte Aplicar alterações com troca de base e Trocar base vs mesclagem.

Dica

Se o branch de origem for um branch de acompanhamento remoto, verifique se o branch está atualizado executando uma busca do Git antes da troca de base.

  1. Escolha Gerenciar Branches do Git > para abrir a janela Repositório do Git.

    Captura de tela da opção Gerenciar Branches no menu Git no Visual Studio 2019.

  2. Na janela Repositório do Git , clique com o botão direito do mouse no branch de destino e selecione Check-out.

    Captura de tela da opção Check-out no menu de atalho do branch na janela Repositório do Git no Visual Studio 2019.

  3. Clique com o botão direito do mouse no branch de origem e selecione Trocar base< branch de origem> em <branch de destino>.

    Captura de tela da opção Trocar base no menu de atalho do branch na janela Repositório do Git no Visual Studio 2019.

  4. O Visual Studio exibirá uma mensagem de confirmação após uma troca de base bem-sucedida.

    Captura de tela da mensagem de confirmação de troca de base na janela Repositório do Git no Visual Studio 2019.

    Se a troca de base for interrompida devido a conflitos de mesclagem, o Visual Studio o notificará. Você pode resolver os conflitos ou cancelar a troca de base e retornar ao estado de pré-troca de base.

    Captura de tela da mensagem de conflito de troca de base na janela Repositório do Git no Visual Studio 2019.

Baixar alterações e atualizar branches com pull

Por padrão, o pull do Git combina uma busca do Git e uma mesclagem do Git para atualizar seu branch local atual de seu equivalente remoto. Opcionalmente, o pull do Git pode executar uma troca de base do Git em vez de uma mesclagem do Git.

Ao contrário da busca do Git, o pull do Git atualizará seu branch local atual imediatamente após baixar novos commits do repositório remoto. Use o pull do Git quando souber que deseja atualizar seu branch local atual logo após uma busca do Git.

Dica

Para configurar o Visual Studio para trocar base em vez de mesclar quando você efetuar pull:

  1. No menu Git, vá para Ferramentas>Opções> Controle de Fonte>Configurações Globais do Git.
  2. Defina a opção Trocar base do branch local ao efetuar pull para True.
  1. Na janela Alterações do Git, escolha Pull.

    Captura de tela do botão Pull na janela Alterações do Git do Visual Studio 2019.

    Você também pode escolher Pull no menu Git.

    Captura de tela da opção Pull no menu Git no Visual Studio 2019.

  2. Uma mensagem de confirmação é exibida quando a operação de pull for concluída.

    Captura de tela da mensagem de confirmação de pull na janela Alterações do Git no Visual Studio 2019.

    Se houver conflitos durante a parte de mesclagem da operação de pull, o Visual Studio o notificará. Você pode resolver os conflitos ou cancelar a mesclagem e retornar ao estado de pré-mesclagem.

    Captura de tela da mensagem de conflito de pull na janela Alterações do Git no Visual Studio 2019.

Observação

No Visual Studio, Sincronização executa um Pull e, em seguida, um Push para sincronizar um branch local e remoto. Para obter mais informações sobre Sincronização, consulte Usar busca, pull, push e sincronização do git para controle de versão no Visual Studio.

Próximas etapas