Gerenciar repositórios Git no Visual Studio

A janela Repositório Git fornece uma experiência Git em tela inteira que ajuda você a gerenciar seu repositório Git e manter-se atualizado com os projetos da sua equipe. Por exemplo, talvez seja necessário redefinir, reverter ou selecionar commits cherry-pick ou apenas limpar seu histórico de confirmação. A janela Repositório Git também é um ótimo lugar para visualizar e gerenciar seus branches.

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

Abrir a janela do repositório Git

Para abrir a janela Repositório Git, escolha Exibir>Repositório Git (ou pressione Ctrl+0, Ctrl+R) ou pressione Ctrl+Q e, em Recursos, procure Repositório Git.

Explicar um commit com o Chat do GitHub Copilot

Com o Visual Studio 2022 versão 17.10 preview 2 e posterior e as extensões do GitHub Copilot, você pode usar IA para gerar uma descrição detalhada da confirmação que descreve as alterações nesse commit. Pressione o botão Explicar para solicitar que o GitHub Copilot crie uma descrição de commit. Para instalar o GitHub Copilot, consulte Instalar e gerenciar o GitHub Copilot no Visual Studio.

Captura de tela do botão Explicar para solicitar que o GitHub Copilot crie uma explicação de commit.

Alterar o último commit (emendar)

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

Você pode emendar um commit na linha de comando usando o seguinte comando:

git commit --amend

A janela Repositório Git facilita a atualização da mensagem de commit mais recente. Abra os detalhes do commit do último commit clicando duas vezes nele e, em seguida, selecione a opção Editar ao lado da mensagem de commit.

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

Quando terminar de editar sua mensagem de commit, selecione Emendar.

Captura de tela do salvamento de uma mensagem editada selecionando Emendar.

Se você precisar incluir alterações de código no último commit, poderá fazer isso na janela Alterações do Git. Marque a caixa de seleção Emendar e confirme as alterações.

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

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

Commits de mesclagem (squash)

Para mesclar uma série de commits, o Git fornece uma opção para apertar commits em um único commit. Essa opção poderá ser útil se você fizer commits frequentes e acabar com uma longa lista de commits para limpeza antes de enviar por push para um repositório remoto.

Você pode usar a opção squash em dois commits na linha de comando usando o seguinte comando:

git rebase -i HEAD~2

Em seguida, atualize pick para squash, salve e atualize a mensagem de commit.

Captura de tela da atualização da escolha de squash.

Para mesclar commits no Visual Studio, use a tecla Ctrl para selecionar vários commits que você quer mesclar. Em seguida, clique com o botão direito e selecione Fazer Squash de Commits. O Visual Studio combina automaticamente suas mensagens de commit, mas, às vezes, é melhor fornecer uma mensagem atualizada. Depois de examinar e atualizar sua mensagem de commit, selecione o botão Squash.

Captura de tela da ação de squash commits no Visual Studio.

Para saber mais sobre como usar squash, confira Ferramentas do Git – Reescrevendo o Histórico no site do Git.

Mesclar e trocar base de branches

Se você estiver usando branches do Git para trabalhar em diferentes recursos, em algum momento precisará incluir atualizações introduzidas em outros branches. Isso pode acontecer enquanto você ainda está trabalhando no branch de recursos. Isso também pode acontecer quando você terminar de trabalhar no branch de recursos e precisar manter suas alterações adicionando-as a um branch diferente. No Git, você pode incluir essas atualizações mesclando ou trocando a base de branches.

Observação

As instruções a seguir usam New_Feature como nome de exemplo para um branch de recursos. Substitua-o pelo nome do seu próprio branch.

Para mesclar o branch principal em seu branch de recursos na linha de comando, use os seguintes comandos:

git checkout New_Feature
git merge main

Para fazer o mesmo no Visual Studio, faça o check-out do branch de recursos clicando duas vezes nele na lista de branches. Em seguida, clique com o botão direito em main e selecione Mesclar "main" em "New_Feature".

Captura de tela da mesclagem de branches no Visual Studio.

Para trocar a base do branch principal em seu branch de recursos na linha de comando, use os seguintes comandos:

git checkout New_Feature
git rebase main

Para fazer o mesmo no Visual Studio, faça o check-out do branch de recursos clicando duas vezes nele na lista de branches. Em seguida, clique com o botão direito em main e selecione Trocar base de "New_Feature" para "main".

Captura de tela da troca de bases de branches no Visual Studio.

Para saber mais sobre mesclagem, troca de base e ramificação em geral, confira Ramificação do Git no site do Git.

Copiar commits (cherry-pick)

Copie commits de um branch para outro usando a opção cherry-pick. Ao contrário de uma mesclagem ou troca de base, cherry-picking traz apenas as alterações dos commits selecionados, em vez de todas as alterações em um branch. Cherry-picking é uma ótima maneira de enfrentar esses problemas comuns:

  • Commit acidental no branch errado. Cherry-pick leva as alterações para o branch correto e redefine o branch original para o commit anterior.
  • Efetuar pull de um conjunto de commits feitos em um branch de recursos, para mesclá-los de volta ao branch principal antecipadamente.
  • Portabilidade em commits específicos do branch principal sem trocar a base de seu branch.

Para copiar as alterações de um commit para o branch atual usando a linha de comando, use o seguinte comando:

git cherry-pick 7599e530

Para fazer o mesmo no Visual Studio, visualize o branch do qual você deseja selecionar um commit selecionando-o com um único clique. Em seguida, clique com o botão direito do mouse no commit de destino e selecione Cherry-Pick.

Captura de tela de cherry-picking no Visual Studio.

Após a conclusão da operação, o Visual Studio mostrará uma mensagem de êxito. O commit que você escolheu é exibido na seção Saída.

Para saber mais sobre cherry-picking de commits, confira a página da Web do Git para o comando cherry-pick.

Reverter as alterações

Use o comando revert para desfazer as alterações feitas em commits enviados por push para branches compartilhados. O comando revert cria um novo commit que desfaz as alterações feitas em um commit 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 um commit usando a linha de comando, use os comandos a seguir. Substitua a ID de exemplo pela ID de um commit real em seu branch.

git revert 53333305
git commit

No exemplo anterior, os comandos desfarão as alterações feitas no commit 53333305 e criarão um novo commit no branch. O commit original ainda está no histórico do Git. Para fazer o mesmo no Visual Studio, clique com o botão direito no commit que você deseja reverter e selecione Revert. Após a confirmação da ação e conclusão da operação, o Visual Studio exibirá uma mensagem de êxito e uma nova confirmação será exibida na seção Saída.

Captura de tela da reversão no Visual Studio.

Selecione o novo commit para confirmar que ele irá desfazer as alterações do commit revertido.

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

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

Redefinir um branch para um estado anterior

Use o comando reset para trazer um branch em seu repositório local de volta ao conteúdo de um commit anterior. Essa ação descarta todas as alterações que ocorreram desde o commit para o qual você está redefinindo seu branch.

Aviso

Não redefina branches compartilhados, pois você pode excluir o trabalho de outras pessoas. Em vez disso, use o comando revert.

Para redefinir um branch para um estado anterior usando a linha de comando, use o comando a seguir. Substitua a ID de exemplo pela ID de um commit real em seu branch.

git reset --hard 53333305

A parte --hard do comando informa ao Git para redefinir os arquivos para o estado do commit anterior e descartar quaisquer alterações preparadas. Para fazer o mesmo no Visual Studio, clique com o botão direito no commit para o qual você deseja redefinir o branch e selecione Redefinir>Excluir Alterações (--forçada).

Captura de tela que mostra a redefinição de um branch no Visual Studio.

Para saber mais sobre como redefinir branches, confira a página da Web do Git para o comando reset.