Partilhar via


Gerenciar repositórios Git no Visual Studio

A janela Git Repository oferece uma experiência Git no ecrã completo que ajuda o utilizador a gerir o seu repositório Git e a permanecer atualizado com os projetos da sua equipa. Por exemplo, talvez seja necessário redefinir, reverter ou escolher confirmações seletivamente ou apenas limpar seu histórico de confirmações. A janela Git Repository também é um ótimo lugar para visualizar e gerenciar os seus ramos.

O controle de versão com o Visual Studio é fácil com o Git. Além disso, você pode trabalhar remotamente com o provedor Git de sua escolha, como o GitHub ou o Azure DevOps. Ou, você pode trabalhar localmente sem nenhum provedor.

Abra a janela Repositório Git

Para abrir a janela repositório Git, escolha Ver>repositório Git (ou pressione Ctrl+0, Ctrl+R), ou pressione Ctrl+Q e, em Funcionalidades, procure repositório Git.

Explique uma confirmação com o GitHub Copilot Chat

Com o Visual Studio 2022 versão 17.10 preview 2 e posteriores e as extensões do GitHub Copilot, pode-se usar a IA para gerar uma descrição de commit detalhada que descreva as modificações nesse commit. Pressione o botão Explicar para solicitar que o GitHub Copilot crie uma descrição de confirmação. Para instalar o GitHub Copilot, consulte Instalar e gerenciar o GitHub Copilot no Visual Studio.

Captura de écran do botão explicar para solicitar que o Copiloto do GitHub crie uma explicação de commit.

Alterar o último commit (emendar)

A atualização da última confirmação é chamada alteração no Git e é um caso de uso comum. Às vezes, você só precisa atualizar sua mensagem de confirmação, ou talvez precise incluir uma alteração de última hora.

Você pode alterar uma confirmação na linha de comando usando o seguinte comando:

git commit --amend

A janela Repositório Git facilita a atualização da mensagem de confirmação mais recente. Abra os detalhes de confirmação da última confirmação clicando duas vezes nela e selecione a opção Editar ao lado da mensagem de confirmação.

Captura de tela da edição de uma mensagem de confirmação.

Quando terminar de editar a mensagem de confirmação, selecione Alterar.

Captura de ecrã a mostrar como guardar uma mensagem editada selecionando Alterar.

Se precisar incluir alterações de código no seu último commit, pode fazer isso na janela Git Changes. Marque a caixa de seleção Alterar e confirme as alterações.

Captura de tela da alteração de alterações de código usando a janela Alterações do Git.

Para saber mais sobre como alterar, incluindo como alterar mensagens de confirmação diferentes da mais recente, consulte Ferramentas do Git - Reescrevendo o histórico no site do Git.

Mesclar confirmações (squash)

Para mesclar uma série de commits, o Git oferece uma opção para agrupar commits em um único commit. Essa opção pode ser útil se você fizer confirmações frequentes e acabar com uma longa lista de confirmações que deseja limpar antes de enviar por push para um repositório remoto.

Você pode esmagar duas confirmações na linha de comando usando o seguinte comando:

git rebase -i HEAD~2

Em seguida, atualize pick para squash, salvar e atualizar a mensagem de confirmação.

Captura de ecrã a atualizar a seleção para squash.

Para mesclar confirmações no Visual Studio, use a tecla Ctrl para selecionar várias confirmações que você deseja mesclar. Em seguida, clique com o botão direito do mouse e selecione Squash Commits. O Visual Studio combina automaticamente suas mensagens de confirmação, mas às vezes é melhor fornecer uma mensagem atualizada. Depois de rever e atualizar a sua mensagem de confirmação, selecione o botão Squash.

Captura de ecrã de squash de commits no Visual Studio.

Para saber mais sobre squashing, consulte Git Tools - Rewriting History no site do Git.

Mesclar e fazer rebase de ramificações

Se você estiver usando ramificações do Git para trabalhar em recursos diferentes, em algum momento precisará incluir atualizações introduzidas em outras ramificações. Isso pode acontecer enquanto ainda estás a trabalhar no teu ramo de funcionalidade. Isso também pode acontecer quando terminas de trabalhar no teu ramo de funcionalidades e precisas de manter as tuas alterações, adicionando-as a um ramo diferente. No Git, você pode incluir essas atualizações mesclando ou rebaseando ramificações.

Observação

As instruções a seguir usam New_Feature como um nome de exemplo para uma ramificação de recurso. Substitua-o pelo nome da sua própria filial.

Para mesclar a ramificação principal em sua ramificação de recurso na linha de comando, use os seguintes comandos:

git checkout New_Feature
git merge main

Para fazer o mesmo no Visual Studio, verifique a ramificação de recurso clicando duas vezes nela na lista de ramificações. Em seguida, clique com botão direito principal e selecione Mesclar 'principal' em 'New_Feature'.

Captura de tela da mesclagem de ramificações no Visual Studio.

Para rebasear a ramificação principal em sua ramificação de recurso na linha de comando, use os seguintes comandos:

git checkout New_Feature
git rebase main

Para fazer o mesmo no Visual Studio, verifique a ramificação de recurso clicando duas vezes nela na lista de ramificações. Em seguida, clique com botão direito principal e selecione Rebasear 'New_Feature' para 'principal'.

Captura de tela da redefinição de base de ramificações no Visual Studio.

Para saber mais sobre fusões, rebase e ramificações em geral, consulte Git Branching no site do Git.

Copiar confirmações (escolha seletiva)

Copiar confirmações de uma ramificação para outra usando a funcionalidade *cherry-pick*. Ao contrário de um merge ou rebase, cherry-picking traz apenas as alterações dos commits que você seleciona, em vez de todas as alterações de uma branch. A escolha seletiva é uma ótima maneira de resolver esses problemas comuns:

  • Cometer acidentalmente no ramo errado. Selecione as alterações para o ramo correto e, em seguida, redefina o ramo original para a confirmação anterior.
  • Retirar um conjunto de commits feitos numa ramificação de funcionalidades, para serem mesclados de volta à sua ramificação principal mais rapidamente.
  • Transferência de commits específicos do branch principal sem rebasear o seu branch.

Para copiar alterações de uma confirmação para sua ramificação atual usando a linha de comando, use o seguinte comando:

git cherry-pick 7599e530

Para fazer o mesmo no Visual Studio, visualize a ramificação da qual você deseja escolher uma confirmação selecionando-a com um único clique. Em seguida, clique com o botão direito do rato no commit alvo e selecione Cherry-Pick.

Captura de tela de escolha seletiva no Visual Studio.

Quando a operação é concluída, o Visual Studio mostra uma mensagem de êxito. A confirmação escolhida a dedo aparece na seção de saída.

Para saber mais sobre confirmações seletivas, consulte a página da Web do Git para obter o comando cherry-pick.

Reverter alterações

Use o comando revert para desfazer as alterações feitas nos commits enviados para ramificações partilhadas. O comando revert cria uma nova confirmação que desfaz as alterações feitas em uma confirmação anterior. O comando revert não reescreve o histórico do repositório, o que o torna seguro de usar quando você estiver trabalhando com outras pessoas.

Para reverter as alterações feitas em uma confirmação usando a linha de comando, use os seguintes comandos. Substitua o ID de exemplo pelo ID de uma confirmação real em sua ramificação.

git revert 53333305
git commit

No exemplo anterior, os comandos desfarão as alterações feitas no commit 53333305 e criarão uma nova commit na ramificação. O compromisso original ainda está na história do Git. Para fazer o mesmo no Visual Studio, clique com o botão direito no commit que deseja reverter e selecione Reverter. Depois de confirmar a sua ação e a operação ser concluída, o Visual Studio exibirá uma mensagem de êxito, e um novo commit aparecerá na seção Saída.

Captura de tela da reversão no Visual Studio.

Selecione a nova confirmação para confirmar que ela desfaz as alterações da confirmação revertida.

Captura de tela da confirmação de uma operação de reversão.

O item de menu Reverter pode estar acinzentado (desativado) em determinadas circunstâncias, como para confirmações de mesclagem ou quando uma operação do Git está em execução.

Para saber mais sobre como reverter alterações, consulte a página da Web do Git para obter o comando revert.

Redefinir uma ramificação para um estado anterior

Use o comando reset para trazer uma branch no teu repositório local de volta ao conteúdo de um commit anterior. Essa ação descarta todas as alterações que aconteceram desde a confirmação para a qual você está redefinindo sua ramificação.

Advertência

Não redefina ramificações partilhadas, pois pode eliminar o trabalho de outras pessoas. Em vez disso, use o comando revert.

Para redefinir uma ramificação para um estado anterior usando a linha de comando, use o seguinte comando. Substitua o ID de exemplo pelo ID de uma confirmação real em sua ramificação.

git reset --hard 53333305

A parte --hard do comando diz ao Git para repor os arquivos ao estado do commit anterior e descartar quaisquer alterações preparadas. Para fazer o mesmo no Visual Studio, clique com o botão direito do rato no commit para o qual pretende redefinir a sua branch e selecione Redefinir>Eliminar alterações (--hard).

Captura de tela que mostra a redefinição de uma ramificação no Visual Studio.

Para saber mais sobre como redefinir ramificações, consulte a página da Web do Git para obter o comando reset.