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.
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.
Quando terminar de editar a mensagem de confirmação, selecione 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.
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.
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.
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'.
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'.
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.
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.
Selecione a nova confirmação para confirmar que ela desfaz as alterações da confirmação revertida.
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).
Para saber mais sobre como redefinir ramificações, consulte a página da Web do Git para obter o comando reset.