Compartilhar via


Usar comandos de Controle de versão do Team Foundation

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | Visual Studio 2022

Você pode usar comandos de controle de versão para realizar quase todas as tarefas do TFVC (Controle de Versão do Team Foundation) que você pode fazer no Visual Studio. Você também pode usar comandos de controle de versão para realizar várias tarefas que não podem ser feitas no Visual Studio. Para executar comandos de controle de versão em um prompt de comando ou em um script, use a tf.exe ferramenta.

Executar um comando

Para iniciar o prompt de comando do Visual Studio, no Windows Start, selecione o Prompt de Comando do Desenvolvedor para VS2022 ou o atalho de versão anterior.

Observação

Para o Visual Studio 2019 e versões posteriores, o tf.exe binário não está mais em um local fixo no caminho de instalação do Visual Studio, como em algumas versões anteriores, por exemplo, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Se o script for tf.exeusado, não indispira um caminho para o arquivo com base no caminho de instalação do Visual Studio.

Na maioria dos casos, você executa o comando controle de versão no contexto de um diretório mapeado no workspace. Por exemplo, $/SiteApp/Main/ é mapeado para c:\\code\\SiteApp\\Main\\. Para obter a versão mais recente de todos os itens no workspace, use o seguinte comando:

c:\code\SiteApp\Main\SolutionA>tf get

Configurar seu computador de desenvolvimento e gerenciar workspaces

Seu workspace é uma cópia local da base de código da sua equipe. Como é uma cópia local em seu computador de desenvolvimento, você pode desenvolver e testar seu código isoladamente até estar pronto para fazer check-in em seu trabalho. Aqui estão alguns comandos para gerenciar seu workspace:

Para obter mais informações, consulte os seguintes recursos:

Desenvolver seu aplicativo

Use estes comandos para desenvolver seu aplicativo sob controle de versão com sua equipe:

Para obter mais informações, consulte Desenvolver seu aplicativo no controle de versão do Team Foundation.

Suspender seu trabalho

Por vários motivos, às vezes você precisa deixar de lado alguns ou todos os seus trabalhos em andamento. Para suspender e retomar seu trabalho e gerenciar seus conjuntos de prateleiras, use estes comandos:

Para obter mais informações, consulte Suspender seu trabalho e gerenciar seus conjuntos de prateleiras.

Contribuir com seu trabalho

Use o checkin comando para fazer check-in do código na base de código da equipe:

  • Comando Checkin: verifica se há alterações pendentes em arquivos ou pastas no servidor.

Para obter mais informações, consulte Check-in do seu trabalho para a base de código da equipe.

Gerenciar arquivos e resolver problemas

Use os recursos nas seções a seguir para gerenciar arquivos.

Exibir e gerenciar arquivos e pastas de controle de versão

Para obter mais informações, consulte Usar o Gerenciador de Controle de Origem para gerenciar arquivos sob controle de versão.

Exibir e gerenciar versões anteriores

Para obter mais informações, consulte Exibir e gerenciar versões anteriores.

Comparar pastas e arquivos

Para obter mais informações, consulte Exibir e gerenciar versões anteriores.

Resolver conflitos de arquivo

Para obter mais informações, consulte Resolver conflitos de controle de versão do Team Foundation.

Trabalhar com bloqueios de controle de versão

Para obter mais informações, consulte Trabalhar com bloqueios de controle de versão.

Isolar risco

Use os seguintes comandos para isolar o risco usando branches:

Para obter mais informações, consulte Usar branches para isolar o risco no Controle de Versão do Team Foundation.

Administrar controle de versão

Use os seguintes comandos para gerenciar seu sistema de controle de versão:

Para obter mais informações, consulte Definir configurações de check-out.

Obter ajuda em comandos de controle de versão

Use os seguintes comandos para obter informações detalhadas sobre comandos de controle de versão:

Entender a sintaxe de comando

A sintaxe de cada comando aparece na parte superior de cada artigo de referência.

Argumentos obrigatórios e opcionais

Argumentos não entre colchetes são necessários. [Colchetes] indicam argumentos opcionais que não são necessários para concluir um comando. No entanto, alguns argumentos opcionais têm padrões que são aplicados ao comando mesmo que você não especifique a opção.

Argumentos exclusivos

Quando as opções são separadas por um pipe (|), você pode especificar uma das opções.

Argumentos verbatim e substituíveis

Itens que não estão entre colchetes são opções que você inclui verbatim. Itens entre colchetes angulares (< e >) são argumentos que você deve substituir por caracteres reais para executar um comando.

Atalhos de comando e aliases

Alguns comandos dão suporte a atalhos. Por exemplo, você pode chamar o comando Delete com ou tf deletetf del.

Example

Por exemplo, considere o comando Checkout:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

Este exemplo inclui os seguintes argumentos:

  • <item-spec>: você deve substituir esse argumento por uma especificação de item que identifique os itens que você está fazendo check-out.
  • Os argumentos a seguir são opcionais. Se você não for fornecê-los, nenhum dos efeitos deles se aplicará ao comando:
    • /lock:(none|checkin|checkout): se você não especificar a opção /lock , o sistema usará /lock:none por padrão. Caso contrário, você poderá especificar uma das outras opções de bloqueio.
    • /recursive: se você quiser fazer check-out recursivamente de vários itens em uma pasta, especifique essa opção verbatim.
    • /login:<username>, <password>: se você quiser executar o comando como outro usuário, deverá especificar a opção /login verbatim e substituir <username> pelo nome do usuário. Se necessário, substitua <password> pela senha do usuário.

Especificar os itens afetados por um comando

Você pode usar especificações de item e especificações de versão para especificar quais itens são afetados por um comando.

Usar um argumento de especificação de item para especificar itens afetados

Você usa uma especificação de item para especificar os itens afetados por um comando. Você pode especificar itens em um computador cliente ou no servidor do Azure DevOps. Você pode usar caracteres curinga como * e ?.

Argumentos de especificação de item do cliente

Um argumento de especificação de item do cliente especifica um caminho para itens em um computador cliente, como:

  • Uma pasta, por exemplo, c:\code\SiteApp\Main\SolutionA\.
  • Um arquivo, por exemplo, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Vários arquivos, por exemplo, c:\code\SiteApp\Main\SolutionA\*.cs.
  • Um caminho UNC (convenção de nomenclatura universal), como \\myshare\code\SiteApp\Main.

Argumentos de especificação de item de servidor

Um argumento de especificação de item de servidor especifica um caminho para itens no servidor do Azure DevOps, como:

  • Uma pasta, por exemplo, $/SiteApp/Main/SolutionA.
  • Um arquivo, por exemplo, $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Vários arquivos, por exemplo, $/SiteApp/Main/SolutionA/*.cs.

Normalmente, você usa argumentos de especificação de item de servidor quando precisa executar um comando em itens que não estão no computador cliente. Por exemplo, digamos que você esteja trabalhando em um computador de desenvolvimento. Se você precisar obter alguns dados de histórico de revisão sobre alguns itens que estão em uma coleção de projetos em que você não trabalha, use o seguinte comando:

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Vários argumentos de especificação de item

Para alguns comandos, você pode especificar vários argumentos de especificação de item, por exemplo:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Este comando verifica program.cs e program2.c.

Usar um argumento de especificação de versão para especificar versões afetadas de itens

Você usa uma especificação de versão para especificar a versão dos itens afetados por um comando. Para fornecer uma especificação de versão, você pode:

  • Use a opção /version , por exemplo, /version:C44.

  • Acrescente a especificação de versão a uma especificação de item com um ponto-e-vírgula, por exemplo, program1.cs;C44.

Ao usar o comando Histórico ou o comando Diferença, você pode especificar um intervalo de versões separando as versões com um bloco, por exemplo:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Use a sintaxe a seguir para especificar uma especificação de versão:

Tipo Sintaxe Description Exemplos Resultado
Conjunto de alterações [C]<version-number> Especifica itens com base em um número de conjunto de alterações. Se um item que está no escopo não tiver sido modificado no conjunto de alterações especificado, o sistema usará a versão mais recente do item que ocorreu antes do conjunto de alterações especificado. Você pode omitir C se especificar apenas um número. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Se readme.txt foi modificado no conjunto de alterações 8, o código de exemplo obtém essa versão do arquivo. Caso contrário, ele obterá a versão mais recente do readme.txt antes da versão 8.
Etiqueta L<label> Especifica itens aos quais um rótulo é aplicado. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
O primeiro exemplo obtém a versão de readme.txt que foi rotulada como JulyHotFix. O segundo recupera a versão de todos os itens rotulados (e exclui esses itens não rotulados) no workspace como eles existiam quando o conjunto de alterações rotulado LastKnownGood foi criado. Você pode usar o código no segundo exemplo como parte de um processo de build automatizado.
Data e hora D<yyyy-mm-ddTxx:xx>

or

D<mm/dd/yyyy>

or

Qualquer formato compatível com o .NET Framework.

or

Qualquer um dos formatos de data com suporte no computador local.
Especifica um conjunto de alterações que foi criado em uma data especificada em um momento específico. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
O primeiro exemplo atualiza o workspace para corresponder à base de código como ela existia em 22 de março de 2022 à meia-noite. O segundo atualiza o workspace para corresponder à base de código como ela existia em 22 de março de 2022 às 9h. Para obter mais informações sobre formatos de data e hora compatíveis com o .NET Framework, consulte datetime e cadeias de caracteres de formato de data e hora padrão.
Workspace atual W Especifica a versão em seu workspace. - -
Workspace especificado W<workspace-name>; <workspace-owner> Especifica a versão em um workspace especificado. tf get /version:WResolveRIConflicts;PatW O exemplo especifica a versão no ResolveRIConflicts workspace que PatW possui.
Dica T Especifica a versão mais recente. - -

Usar opções para modificar como um comando funciona

Você pode usar algumas opções comuns para modificar como um comando funciona.

Use a opção /noprompt para suprimir solicitações de entrada de dados e redirecionar dados de saída

Use a opção /noprompt para suprimir solicitações de entrada de dados e redirecionar dados de saída para a janela do prompt de comando. Essa opção pode ser útil quando você precisa usar comandos de controle de versão em um script em que:

  • O comando prossegue sem intervenção de um usuário.
  • Os dados estão disponíveis para o script executar operações, como análise ou captura.

Quando você usa essa opção, o sistema:

  • Suprime todas as solicitações de entrada:

    • Perguntas não são feitas na janela do prompt de comando. Por exemplo, quando você usa o comando Desfazer com essa opção, o sistema não solicita que você confirme se deseja desfazer as alterações.
    • Janelas e caixas de diálogo não são exibidas. Por exemplo, você pode usar essa opção com o comando Checkin. O sistema não exibe a caixa de diálogo Check-In para você confirmar itens e itens de trabalho associados. Em vez disso, o sistema verifica os itens sem confirmação.
  • Redireciona dados de saída para o prompt de comando. Por exemplo, você pode usar essa opção com o comando Histórico. Os dados são exibidos na janela do prompt de comando em vez da janela Histórico.

Usar a opção /login para especificar credenciais

Use a opção /login para especificar a conta de usuário do servidor do Azure DevOps para executar um comando. Essa opção pode ser útil quando você trabalha no computador de outro membro da equipe.

Por exemplo, digamos que você esteja trabalhando no computador de desenvolvimento do membro da equipe. Use o comando Bloquear para desbloquear um arquivo que você bloqueou anteriormente:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Se você quiser evitar que sua senha apareça no prompt de comando, insira o comando sem a senha:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

Depois de inserir esse comando, o sistema solicitará que você insira sua senha em uma caixa de diálogo que mascara sua entrada.

Usar a opção /lock para aplicar ou remover um bloqueio

Importante

Como prática recomendada, use a opção /lock com discrição. Informe seus colegas de equipe por que você está bloqueando um item e quando planeja remover o bloqueio.

Use a opção /lock para aplicar ou remover um bloqueio ao mesmo tempo em que você executa outro comando, como Adicionar ou Editar.

/lock:(none|checkin|checkout)

O /lock comando usa as seguintes opções:

  • None: nenhum bloqueio é colocado em um item. Se um bloqueio já estiver em vigor, ele será removido.

  • Checkin ou Checkout: um bloqueio é aplicado. Para obter mais informações, consulte Entenda os tipos de bloqueio.

Observação

Em alguns casos, a operação de bloqueio pode falhar:

  • Se outros usuários bloquearem qualquer um dos itens especificados, a operação de bloqueio falhará.
  • Se já houver uma alteração pendente no item especificado, o sistema ignorará essa opção. Nesse caso, você deve usar o comando Lock para alterar um bloqueio em um item.

Usar atalhos de opção

Você pode abreviar as opções a seguir.

Opção

Alias de opção

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Entender códigos de saída

Os comandos de controle de versão retornam os seguintes códigos de saída:

Sair do código

Definição

0

Êxito.

1

Sucesso parcial. Pelo menos algo, ou possivelmente tudo, não conseguiu.

2

Comando não reconhecido.

100

Nada foi bem-sucedido.

Por exemplo, digamos que você execute o seguinte comando:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Se um dos arquivos que você está tentando fazer check-out não existir no servidor, o comando retornará 1 para indicar o êxito parcial.