Partilhar via


Usar comandos de controle de versão do Team Foundation

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | Visual Studio 2022

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

Executar um comando

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

Observação

Para o Visual Studio 2019 e versões posteriores, o binário tf.exe 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 usar tf.exe, não codifice um caminho para o arquivo com base no caminho de instalação do Visual Studio.

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

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

Configure sua máquina de desenvolvimento e gerencie espaços de trabalho

Seu espaço de trabalho é uma cópia local da base de código da sua equipe. Como é uma cópia local na tua máquina de desenvolvimento, podes desenvolver e testar o teu código isoladamente até estar pronto para validar o teu trabalho. Aqui estão alguns comandos para gerenciar seu espaço de trabalho:

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

Desenvolva seu aplicativo

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

Para obter mais informações, consulte Desenvolver a sua aplicação no controlo de versão do Team Foundation.

Suspender o trabalho

Por várias razões, às vezes você precisa reservar parte ou todo o seu trabalho em andamento. Para suspender e retomar seu trabalho e gerenciar suas prateleiras, use estes comandos:

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

Contribua com o seu trabalho

Use o comando checkin para integrar o seu código no repositório de código da equipa.

  • comando Checkin: Confirma alterações pendentes em ficheiros ou pastas no servidor.

Para obter mais informações, consulte Integrar o seu trabalho na base de código da equipa.

Gerencie arquivos e resolva 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 Utilizar o Explorador de Controle de Código-Fonte para gerir ficheiros sob controlo de versão.

Ver e gerir versões anteriores

Para obter mais informações, consulte Visualizar e gerir versões anteriores.

Comparar pastas e ficheiros

Para obter mais informações, consulte Visualizar e gerir versões anteriores.

Resolver conflitos de ficheiros

  • Comando Resolver: Resolve conflitos entre itens no espaço de trabalho e no servidor.

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

Trabalhe com bloqueios de controlo de versão

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

Isolar o risco

Use os seguintes comandos para isolar o risco usando ramificações:

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

Administrar o controle de versão

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

Para obter mais informações, consulte Configurar configurações de checkout.

Obter ajuda sobre comandos de controle de versão

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

Compreender a sintaxe do comando

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

Argumentos obrigatórios e opcionais

São necessários argumentos sem parênteses. [Colchetes] indicar 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 literais e substituíveis

Os itens que não estão entre parênteses são opções que você inclui textualmente. Os 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 suportam atalhos. Por exemplo, você pode chamar o comando Excluir com tf delete ou tf del.

Exemplo

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 este argumento por uma especificação de item que identifique os itens que está a verificar.
  • Os argumentos a seguir são opcionais. Se tu não os forneceres, nenhum dos seus efeitos se aplica ao comando:
    • /lock:(none|checkin|checkout): Se você não especificar a opção /lock, o sistema usa /lock:none por padrão. Caso contrário, você pode especificar uma das outras opções de bloqueio.
    • /recursive: Se você quiser fazer check-out recursivo de vários itens em uma pasta, você deve especificar essa opção literalmente.
    • /login:<username>, <password>: Se você quiser executar o comando como outro usuário, você deve especificar a opção /login literalmente e substituí<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

Use uma especificação de item para especificar os itens afetados por um comando. Você pode especificar itens em uma máquina cliente ou em seu servidor Azure DevOps. Você pode usar caracteres curinga, como * e ?.

Argumentos de especificação do item do cliente

Um argumento de especificação de item de cliente especifica um caminho para itens em uma máquina 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 universal de nomenclatura), 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 em seu servidor de DevOps do Azure, como:

  • Uma pasta, por exemplo, $/SiteApp/Main/SolutionA.
  • Um arquivo, por exemplo, $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Vários ficheiros, 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 na máquina cliente. Por exemplo, digamos que você esteja trabalhando em uma máquina de desenvolvimento. Se você precisar obter alguns dados do histórico de revisões sobre alguns itens que estão em uma coleção de projetos na qual você não trabalha, você pode usar o seguinte comando:

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

Argumentos de especificação de vários itens

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 extrai 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.

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

Ao usar o comando History ou o comando Difference, você pode especificar um intervalo de versões separando as versões com um til, 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 Descrição Exemplos Resultado
Conjunto de alterações [C]<version-number> Especifica itens com base em um número de changeset. Se um item que está no escopo não foi modificado no conjunto de alterações especificado, o sistema usa 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 obtém a versão mais recente do readme.txt antes da versão 8.
Etiqueta L<label> Especifica os itens aos quais um rótulo é aplicado. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
O primeiro exemplo obtém a versão do readme.txt que foi rotulada JulyHotFix. O segundo recupera a versão de todos os itens rotulados (e exclui os itens não rotulados) no espaço de trabalho como 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 compilação automatizado .
Data e hora D<yyyy-mm-ddTxx:xx>

ou

D<mm/dd/yyyy>

ou

Qualquer formato suportado pelo .NET Framework.

ou

Qualquer um dos formatos de data suportados na máquina 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 espaço de trabalho para corresponder à base de código tal como existia em 22 de março de 2022 à meia-noite. O segundo atualiza o espaço de trabalho para corresponder à base de código tal como existia em 22 de março de 2022 às 9h00. Para obter mais informações sobre formatos de data e hora suportados pelo .NET Framework, consulte DateTime e Cadeias de caracteres de formato de data e hora padrão.
Espaço de trabalho atual W Especifica a versão no seu espaço de trabalho. - -
Espaço de trabalho especificado W<workspace-name>; <workspace-owner> Especifica a versão em um espaço de trabalho especificado. tf get /version:WResolveRIConflicts;PatW O exemplo especifica a versão no espaço de trabalho ResolveRIConflicts que PatW possui.
Sugestão T Especifica a versão mais recente. - -

Usar opções para modificar o funcionamento de um comando

Você pode usar algumas opções comuns para modificar o funcionamento de um comando.

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. Esta opção pode ser útil quando você precisa usar comandos de controle de versão em um script onde:

  • O comando prossegue sem a 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:

    • As 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.
    • O Windows e as caixas de diálogo não são exibidos. 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 confirmar itens e itens de trabalho associados. Em vez disso, o sistema verifica os itens sem confirmação.
  • Redireciona os 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 de .

Use a opção /login para especificar credenciais

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

Por exemplo, digamos que você esteja trabalhando na máquina de desenvolvimento do membro da sua equipe. Use o comando Bloquear para desbloquear um arquivo bloqueado 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, você pode inserir o comando sem a senha:

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

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

Use 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 executa outro comando, como Adicionar ou Editar.

/lock:(none|checkin|checkout)

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

  • None: Nenhum bloqueio é colocado em um item. Se um cadeado já estiver no lugar, ele será removido.

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

Observação

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

  • Se outros usuários tiverem bloqueado 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. Neste caso, deve-se usar o comando de Bloqueio para alterar um bloqueio num item.

Usar atalhos de opção

Você pode abreviar as seguintes opções.

Opção

Opção Alias

/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

Compreender os códigos de saída

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

Código de Saída

Definição

0

Sucesso.

1

Sucesso parcial. Pelo menos alguma coisa, ou possivelmente tudo, não teve sucesso.

2

Comando não reconhecido.

100

Nada teve sucesso.

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 sucesso parcial.