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.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Linha de comando Git
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.
Na janela Alterações do Git , escolha Buscar. Em seguida, selecione saída/entrada para abrir a janela Repositório do Git .
Você também pode escolher Buscar no menu Git.
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.
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.
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:
- Manter seu
main
branch local atualizado com seu equivalente remoto efetuando pull periodicamente para buscar e mesclar commits remotos. - Integrar as atualizações de
main
branch local ao branch de recurso local usando uma troca de base ou mesclagem. - Faça backup do trabalho no branch de recurso local enviando-o por push para o branch remoto correspondente.
- Após a conclusão do recurso, crie uma solicitação de pull para mesclar o branch de recurso remoto no
main
branch 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.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Linha de comando Git
Escolha Gerenciar Branches do Git > na barra de menus para abrir a janela Repositório do Git.
Na janela Repositório do Git , clique com o botão direito do mouse no branch de destino e selecione Check-out.
Clique com o botão direito do mouse no branch de origem e selecione Mesclar< branch de origem> em <branch de destino>.
O Visual Studio exibirá uma mensagem de confirmação após uma mesclagem bem-sucedida.
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.
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.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Linha de comando Git
Escolha Gerenciar Branches do Git > para abrir a janela Repositório do Git.
Na janela Repositório do Git , clique com o botão direito do mouse no branch de destino e selecione Check-out.
Clique com o botão direito do mouse no branch de origem e selecione Trocar base< branch de origem> em <branch de destino>.
O Visual Studio exibirá uma mensagem de confirmação após uma troca de base bem-sucedida.
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.
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:
- No menu Git, vá para Ferramentas>Opções> Controle de Fonte>Configurações Globais do Git.
- Defina a opção Trocar base do branch local ao efetuar pull para
True
.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Linha de comando Git
Na janela Alterações do Git, escolha Pull.
Você também pode escolher Pull no menu Git.
Uma mensagem de confirmação é exibida quando a operação de pull for concluída.
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.
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.