Adicionar os arquivos ao servidor do controle de versão

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Adicionar arquivos ao controle de versão geralmente é automático quando você usa o Gerenciador de Soluções do Visual Studio e o seu projeto está sob o controle de versão. No entanto, em alguns casos, você precisa seguir etapas adicionais para adicionar arquivos e projetos ao controle de versão.

Pré-requisito

Antes que você possa adicionar arquivos ao controle de versão no Visual Studio, configure o workspace no seu computador de desenvolvimento.

Importante

Esses procedimentos se aplicam somente quando você usa um workspace local. Quando você usa um workspace local, novos arquivos são detectados automaticamente como alterações pendentes. Por outro lado, os arquivos salvos em um workspace do servidor são adicionados e marcados sem serem exibidos como alterações pendentes.

Criar um novo projeto e solução de código sob controle de versão

Você pode criar um novo projeto do Visual Studio e adicioná-lo ao controle de versão para que você e sua equipe possam aproveitar imediatamente todos os benefícios do controle de versão desde a primeira linha de código que você escreve.

  1. No Visual Studio, conecte-se ao seu projeto do Azure DevOps.

  2. Selecione Arquivo>Novo Projeto ou pressione Ctrl+Shift+N.

  3. Na tela Criar um novo projeto, selecione o tipo de projeto de código que você deseja criar e selecione Avançar.

    Captura de tela da caixa de diálogo Criar um novo projeto.

  4. Na tela Configurar seu novo projeto, em Nome do projeto, insira um nome para o projeto.

  5. Em Local, especifique o caminho para uma pasta de trabalho local, como c:\code\SiteApp\Main\, no workspace que você criou quando configurou seu computador de desenvolvimento.

  6. Deixe o restante das configurações como estão e selecione Avançar.

    Captura de tela da caixa de diálogo Configurar seu novo projeto.

  7. Na tela Informações adicionais, altere as configurações conforme necessário e selecione Criar.

  8. Depois que o projeto for criado, visualize-o no Gerenciador de Soluções, que você pode abrir pressionando Ctrl+Alt+L.

    Captura de tela de um novo projeto de código no Gerenciador de Soluções

  9. Clique com o botão direito do mouse no nome da solução no Gerenciador de Soluções e selecione Adicionar solução ao Controle do Código-Fonte no menu de contexto.

  10. Alterne para a janela Team Explorer e selecione Fazer check-in para fazer check-in do projeto no controle do código-fonte.

Colocar soluções existentes e projetos de código em controle de versão

Para adicionar uma solução existente ao controle de versão, mova todos os arquivos da solução para seu workspace e, em seguida, adicione-os ao Visual Studio.

  1. No Visual Studio, conecte-se ao seu projeto do Azure DevOps.

  2. Escolha Exibir>Outros Windows>Source Control Explorer.

  3. No Source Control Explorer, navegue até uma pasta pai lógica para sua solução, como $/SiteApp/Main, onde SiteApp é o nome do seu projeto. Para saber mais sobre como nomear pastas locais, consulte Otimizar seus nomes de pasta.

  4. Selecione o link na parte superior da janela ao lado de Caminho Local para abrir a pasta pai no Explorador de Arquivos do Windows. Se o link indicar Não mapeado, consulte Criar e trabalhar com workspaces para obter informações sobre como mapear seu workspace.

  5. No Explorador de Arquivos, mova a pasta que contém sua solução para a pasta pai.

  6. No Visual Studio, escolha Arquivo>Abrir Projeto e navegue até a solução e abra a mesma.

  7. No Gerenciador de Soluções, clique com o botão direito do mouse no nome da solução e selecione Adicionar solução ao Controle do Código-Fonte no menu de contexto.

  8. Clique com o botão direito do mouse no nome da solução novamente e selecione Fazer check-in no menu de contexto.

  9. Na página Alterações pendentes no Team Explorer, se você identificar um link Detectado na seção Alterações Excluídas, selecione o link.

  10. A caixa de diálogo Promover alterações candidatas lista arquivos que não são referenciados por nenhum projeto de código em sua solução. Selecione qualquer um desses arquivos que você deseja fazer check-in, desmarque qualquer um dos arquivos que você não deseja fazer check-in e selecione Promover para mover os arquivos selecionados para Alterações Incluídas. Se você não deseja fazer check-in em nenhum dos arquivos listados, selecione Cancelar para fechar a caixa de diálogo.

  11. Selecione Fazer check-in.

Para obter mais informações, consulte Enviar suas alterações pendentes.

Adicionar um ou mais arquivos ao controle de versão

Quando você adiciona um arquivo ao seu projeto de código no Gerenciador de Soluções do Visual Studio, o sistema adiciona-o automaticamente ao controle de versão. Você também pode adicionar arquivos que não são referenciados por seus projetos de código.

Adicionar automaticamente um ou mais arquivos ao controle de versão

  1. No Visual Studio, conecte-se ao seu projeto do Azure DevOps.

  2. Escolha Exibir>Outros Windows>Source Control Explorer.

  3. No Source Control Explorer, navegue até a pasta onde deseja adicionar os arquivos ou pastas.

  4. Selecione o link ao lado do Caminho Local na parte superior da janela Source Control Explorer para abrir a pasta de destino no Explorador de Arquivos do Windows. Se o link indicar Não mapeado, consulte Criar e trabalhar com workspaces e mapear seu workspace.

  5. No Explorador de Arquivos, mova seus arquivos ou pastas para a pasta de destino.

  6. No Team Explorer do Visual Studio, na página Alterações Pendentes, se você identificar um link Detectado em Alterações Excluídas, selecione o link.

  7. Na caixa de diálogo Promover Alterações Candidatas, selecione apenas os arquivos que você deseja fazer check-in e, em seguida, selecione Promover. Selecione Cancelar se você não deseja fazer check-in em nenhum dos arquivos listados.

  8. Selecione Fazer check-in.

Para obter mais informações, consulte Enviar suas alterações pendentes.

Adicionar arquivos manualmente ao controle de versão

Você também pode adicionar arquivos manualmente ao controle de versão.

  1. No Visual Studio, escolha Exibir>Outros Windows>Source Control Explorer.

  2. No Source Control Explorer, navegue até a pasta onde deseja adicionar os arquivos.

    Importante

    Certifique-se de que foi feito check-in nessa pasta. Se você criar uma nova pasta, clique com o botão direito do mouse nela e selecione Fazer check-in e, em seguida, faça o check-in da nova pasta antes de continuar.

  3. Arraste os arquivos Explorador de Arquivos do Windows para a janela Source Control Explorer do Visual Studio.

  4. Na página Alterações Pendentes no Team Explorer, verifique se Itens incluídos lista todos os arquivos que você deseja adicionar e, em seguida, selecione Fazer check-in.

Usar binários que seu código não inclui

Muitas equipes dependem de binários que existem fora de suas soluções de código. Normalmente, esses binários fazem parte de uma biblioteca que a equipe licenciou de terceiros ou os binários vêm de outra equipe na mesma empresa. Por exemplo, a Equipe A depende de binários que a Equipe B produz e cada equipe trabalha em coleções de projetos diferentes. A Equipe B fornece binários para a Equipe A, que os verifica no controle de versão.

Dica

Os pacotes NuGet podem facilitar o gerenciamento de dependências e manter os binários atualizados. Você pode armazenar pacotes NuGet no Azure DevOps Server ou Azure DevOps Services usando o Azure Artifacts.

A estrutura da pasta e do workspace que você deve usar para armazenar os binários externos depende da forma com que suas soluções dependem dessas bibliotecas.

Adicionar binários em sua estrutura de pasta ou de ramificação

Se você colocar binários externos na mesma pasta pai que contém suas pastas de solução, todos os seus projetos de código em todas as soluções poderão fazer referência às bibliotecas com o mesmo caminho relativo. Por exemplo, uma equipe pode usar a seguinte estrutura de pastas:

Diagrama que mostra uma pasta Biblioteca dentro da pasta pai principal.

Cada projeto de código pode fazer referência à pasta de bibliotecas usando o caminho relativo ../../Lib.

Se sua equipe precisar isolar esforços separados que exijam versões diferentes dos binários, você poderá ramificar a pasta de bibliotecas com sua pasta de soluções. Por exemplo, a Versão 1 de um aplicativo aproveita a Versão 1 de uma biblioteca. Como alguns desenvolvedores trabalham na próxima versão, eles usam a Versão 2, mas outros desenvolvedores não estão prontos para atualizar. Você pode usar ramificações para gerenciar essas situações.

Diagrama que mostra uma pasta Biblioteca dentro da estrutura de ramificação.

Usar um workspace para mapear os binários

Algumas empresas precisam gerenciar dependências mais complicadas em bibliotecas externas. Por exemplo, vários projetos podem conter soluções que têm dependências diferentes em um conjunto comum de bibliotecas. Nesses casos, você pode armazenar bibliotecas externas em um projeto dedicado. Os colaboradores de vários projetos mapeiam nas pastas que contêm as bibliotecas de que precisam.

Por exemplo, a FabrikamFiber coloca o projeto, a ramificação e a estrutura de pastas a seguir em prática:

Diagrama que mostra bibliotecas armazenadas em um projeto dedicado.

Os desenvolvedores podem configurar computadores de desenvolvimento com dois workspaces para dois esforços diferentes, cada um dos quais mapeia nas bibliotecas de que precisa:

Diagrama que mostra como os workspaces mapeiam nas bibliotecas.

Personalizar quais arquivos o controle de versão ignora

Por padrão, o controle de versão ignora determinados tipos de arquivos, como arquivos .dll. Quando você adiciona arquivos ignorados a pastas mapeadas em um workspace local ou arrasta arquivos ignorados para o Source Control Explorer, os arquivos aparecem em Itens excluídos na página Alterações Pendentes no Team Explorer.

Você pode configurar quais tipos de arquivos são ignorados colocando um arquivo de texto .tfignore na pasta onde você deseja que a configuração seja aplicada. Os efeitos do arquivo .tfignore são recursivos, mas os arquivos .tfignore em subpastas substituem arquivos .tfignore em pastas pai.

Regras para arquivos .tfignore

As seguintes regras se aplicam a arquivos .tfignore:

  • # inicia uma linha de comentário.
  • Os curingas * e ? são aceitos.
  • Um filespec é recursivo a menos que seja prefixado pelo caractere \.
  • ! nega um filespec para que arquivos que correspondem ao padrão não sejam ignorados.

Exemplo de arquivo .tfignore

######################################
# Ignore .cpp files in the ProjA subfolder and all its subfolders
ProjA\*.cpp
#
# Ignore .txt files in this folder
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Don't ignore .dll files in this folder nor in any of its subfolders
!*.dll

Criar e usar um arquivo .tfignore

Você pode criar manualmente um arquivo de texto .tfignore que usa as regras anteriores ou pode gerar automaticamente um arquivo .tfignore quando a página Alterações Pendentes detectar uma alteração excluída.

  1. No Team Explorer, na página Alterações Pendentes, selecione o link Detectado na seção Alterações Excluídas.
  2. Na caixa de diálogo Promover Alterações de Candidato, clique com o botão direito do mouse em um arquivo que você deseja ignorar e selecione Ignorar este item local, Ignorar por extensão, Ignorar por nome de arquivo ou Ignorar por pasta no menu de contexto.
  3. Selecione Cancelar para fechar a caixa de diálogo.
  4. Um arquivo .tfignore aparece na seção Alterações Incluídas da página Alterações Pendentes. Você pode abrir o arquivo e modificá-lo para atender às suas necessidades.

O arquivo .tfignore é adicionado como uma alteração pendente incluída, de modo que as regras criadas se aplicam automaticamente a quem recebe o arquivo.

Trabalhar no prompt de comando

Para processos automatizados ou caso deseje usar um prompt de comando, você pode usar o adicionar comando tf.exe adicionar em vez dos procedimentos neste artigo. O comando add carrega arquivos de um workspace em um computador local para o servidor.