Procurar repositórios Git e comparar branches no Visual Studio

A janela Alterações do Git oferece uma forma perfeita de interagir com o Git durante a codificação sem precisar mudar o código. No entanto, há momentos em que faz mais sentido se concentrar no repositório Git. Por exemplo, talvez seja necessário ter uma boa visão do que sua equipe vem fazendo ou comparar dois commits para investigar um bug.

Você pode trabalhar remotamente com o provedor Git de sua escolha, como o GitHub ou o Azure DevOps.

Navegar por branches locais e remotos

Para começar, abra a janela Repositório Git selecionando Repositório Git no menu Exibição (ou usando o atalho de teclado Ctrl+0, Ctrl+R). Você também pode acessar a janela Repositório Git selecionando os links de saída/entrada na janela Alterações do Git e na barra de status.

Screenshot that shows the anatomy of the Git Repository window.

A janela Repositório Git contém três seções principais, conforme numerado na captura de tela anterior:

  1. Branches: o Git capacita os usuários a executar várias tarefas e experimentar seu código por meio de branches. Se você estiver trabalhando em vários recursos ao mesmo tempo ou quiser explorar ideias sem afetar seu código de trabalho, a ramificação pode ser útil.

  2. Grafo: esta seção visualiza o estado do branch. Ele tem três subseções:

    • A Entrada mostra os commits de entrada que sua equipe vem contribuindo.
    • A Saída mostra os commits locais que você ainda não efetuou push.
    • O Histórico Local mostra o restante dos commits rastreados pelo repositório local.
  3. Commit: a seleção de qualquer commit na seção Grafo abre seus detalhes. Você pode verificar as alterações que um commit introduziu selecionando-os, e a diferença será exibida. Por exemplo, a captura de tela anterior mostra as alterações feitas por um commit no arquivo Resize.cs.

Os atalhos de teclado Alt+Seta para cima ou Alt+Seta para baixo permitem que você pule entre essas seções.

Você pode navegar por qualquer branch local ou remoto sem precisar mudar de branch. Quando encontrar um commit no qual deseja se concentrar, selecione o botão Abrir na Nova Guia para abrir o commit em uma guia diferente.

Screenshot of how to open a commit on a new tab.

Screenshot of the tab for commit details.

Dica

Para exibir o commit em tela inteira, desanexe a guia Commit e maximize a janela Commit usando o botão Maximizar. Você também pode selecionar sua configuração de comparação favorita selecionando Configuração de Comparação (o ícone de engrenagem).

Screenshot of full-screen commit details with diff configurations.

Exibição de grafo de várias ramificações

Novidade com a versão 17.7: ao abrir a janela Repositório Git, você começa no modo de exibição de branch único. Em seguida, você pode selecionar qualquer branch para adicionar o branch e seus commits a uma exibição de grafo de várias ramificações, o que adiciona indicações visuais que tornam mais eficiente interagir com vários branches.

Screenshot of the multi-graph branch view in Visual Studio.

Há linhas coloridas e rótulos de branch no lado esquerdo do modo de exibição Histórico Local que ajudam a facilitar o rastreamento de quais commits pertencem a cada branch. Você pode usar a lista de branches na parte superior da tabela para rolar entre branches com mais facilidade e saber imediatamente quais branches aparecem no grafo.

Comparar commits

Para comparar dois commits em seu branch, use a tecla Ctrl para selecionar os dois commits que você deseja comparar. Em seguida, clique com o botão direito do mouse em um deles e selecione Comparar Commits.

Screenshot of how to compare two commits.

Screenshot of compared commits.

Dica

Assim como nos Detalhes de Confirmação, você pode usar o botão Abrir em uma Nova Guia para abrir a comparação em uma guia diferente ou maximizá-la na tela.

Criar um branch a partir de um commit

No Visual Studio, você pode usar o painel Grafo de Git na janela Repositório Git para criar branches de commits anteriores. Para fazer isso, clique com o botão direito do mouse no commit do qual você gostaria de criar um branch e selecione Novo Branch.

Screenshot of the Git Graph pane of the Git Repository window.

Observação

O comando equivalente para essa ação é git branch <branchname> [<commit-id>].

Comparar branches

A comparação de branches oferece uma visão geral das diferenças entre dois branches, o que pode ser útil antes de criar uma solicitação de pull, mesclar ou até mesmo excluir um branch.

Diagram that illustrates how Git compares branches.

Para comparar o branch com check-out feito atualmente com outros branched usando o Visual Studio, você pode utilizar o seletor de branch hospedado na barra de status e a janela de ferramentas de alterações do Git para escolher qualquer branch local ou remoto com o qual comparar. Clique com o botão direito do mouse no branch de destino e selecione Comparar com o Branch Atual. Como alternativa, você pode utilizar a lista de ramificações na janela Repositório Git para acessar o mesmo comando.

Animation that shows the branches comparison entry points.

A seleção de Comparar com o Branch Atual abre a experiência comparar branches onde você pode navegar na lista Alterações e selecionar o arquivo que deseja comparar.

Screenshot that shows how to compare branches by using the diff view.

Dica

Se preferir uma comparação embutida, você poderá usar o ícone de engrenagem Opções de configuração de comparação e mudar para o modo de exibição de comparação embutida. Screenshot that shows the Diff Configuration Options that're available to you.

Fazer check-out de commits

Fazer check-out de um commit pode ter diversos benefícios. Por exemplo, isso permite que você volte para um ponto anterior no histórico do repositório em que você pode executar ou testar seu código. Também pode ser útil se você quiser examinar o código de um branch remoto (branch de um colega, por exemplo). Dessa forma, você não precisa criar um branch local se não estiver planejando contribuir para ele. Nesse caso, basta conferir a dica do branch remoto que deseja examinar.

Diagram that illustrates the Git checkout commit process.

Para conferir um commit anterior no Visual Studio, abra a janela Repositório Git, clique com o botão direito do mouse no commit para a qual deseja voltar e selecione checkout (–detach). O Visual Studio mostra uma caixa de diálogo de confirmação explicando que, ao fazer check-out de um commit, você ficará no estado HEAD desanexado. O que significa que o HEAD do repositório apontará diretamente para um commit em vez de um branch.

Animation that shows the checkout commit entry points.

Agora que você está em um estado de cabeçalho desanexado, fique à vontade para executar e testar seu código ou até mesmo explorar e fazer commit em alterações. Quando terminar de explorar e quiser voltar para o branch, descarte as alterações fazendo check-out de um branch existente ou mantenha as alterações criando um branch primeiro.

Importante

Os commits criados em um estado HEAD desanexado não são associados a nenhum branch e podem ser coletados pelo Git após o check-out de um branch. Por esse motivo, para manter suas alterações, é recomendável criar um branch antes de fazer check-out dele. Por exemplo, as confirmações C5 e C6 serão coletadas como lixo se fizermos check-out sem criar um novo branch. Diagram that illustrates the detached head commits in Git.

Para saber mais sobre o estado HEAD desanexado, confira a documentação do Git HEAD desanexado.

Pode ser útil fazer check-out da extremidade de um branch remoto se você quiser examinar rapidamente uma solicitação de pull e avaliar as atualizações mais recentes. Para fazer isso no Visual Studio, primeiro certifique-se de buscar e obter as atualizações mais recentes do repositório remoto. Em seguida, clique com o botão direito do mouse no branch remoto que você deseja examinar e selecione Fazer check-out de commit de dica.

Screenshot that shows the Checkout Tip Commit option.