分支命令 (Team Foundation 版本控制)

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

Visual Studio 2019 |Visual Studio 2022

TFVC branch 命令将一个或多个项(包括元数据和版本控制历史记录)从 Azure DevOps 服务器和本地工作区中的一个位置复制到另一个位置。

注意

在执行签入操作之前,此命令的结果不会反映在 Azure DevOps 服务器中。 有关详细信息,请参阅 签入团队的代码库

先决条件

若要使用 branch 命令,请具有源项的 读取 权限,签出合并 权限设置为“允许 允许”。 有关详细信息,请参阅 默认 TFVC 权限

语法

tf branch olditem newitem [/version:versionspec] [/noget] [/lock:(none|checkin|checkout)] [/noprompt] [/silent] [/checkin] [/comment:("comment"|@commentfile)] [/author:authorname] [/login:username, [password]] [/recursive]

参数

论点

参数 说明
<olditem> 指定正在分支的源文件或文件夹的名称。 <olditem> 还可以包含格式为 item;version的版本信息。
<newitem> 指定目标文件或文件夹或目标父文件夹的名称。 如果 <*newitem> 已存在并且是 Azure DevOps Server 文件夹,TFVC 会在其中创建分支项。 否则,<newitem> 指定目标文件或文件夹的名称。 如果目标已存在,则签入期间可能会发生冲突。
<versionspec> 提供 /version 选项的值。 有关 TFVC 如何分析版本规范以确定其范围内哪些项的详细信息,请参阅 使用 Team Foundation 版本控制命令
<comment> 提供有关分支的注释。
@<commentfile> 指定包含用于分支的注释的文件的路径。
<authorname> /author 选项的用户提供的值。
<username> /login 选项提供值。 可以将用户名值指定为 DOMAIN\username<username>

选择

选项

说明

/version

要在其中创建分支的项的版本。 可以通过以下方式指定版本:

  • 日期/时间 (2005/D10/20)
  • 更改集编号 (C1256)
  • 标签 (Lmylabel)
  • 最新版本(T)
  • 工作区(Wworkspacename)

如果未提供版本,TFVC 使用以下逻辑来确定要复制到新分支的项版本:

  • 如果指定了 Azure DevOps Server 路径,则 TFVC 会将该项分支到最新的 Azure DevOps Server 版本。 例如,tf branch $/projects/help.cs 使用服务器版本。
  • 如果为源指定了本地路径,TFVC 将使用本地工作区版本来创建新分支。 例如,tf branch C:\314.cs 使用本地工作区版本。

如果对工作区版本早于 Azure DevOps 服务器中最新版本的文件进行分支,则该文件将分支到旧版本。

/lock

防止其他用户签入或签出项目,直到签入挂起的分支和相关更改。 有关详细信息,请参阅 了解锁类型

锁定选项:

  • none
    违约。 未应用锁。 如果要为其创建分支的文件上存在锁,此选项将删除它。
  • checkin
    其他用户可以签出指定的项,但在通过执行签入释放锁定之前,他们无法签入锁定文件的修订。 如果任何其他用户锁定了任一指定项,则锁定操作将失败。
  • checkout
    防止其他用户签入或签出任何一个指定项目,直到通过执行签入来释放锁。 如果任何其他用户锁定了任一指定项,则锁定操作将失败。

/noget

如果指定此选项,则不会在本地工作区中创建新分支中的文件和文件夹的本地副本。 但是,下次执行递归获取操作时,本地副本将检索到工作区中。

注意

在递归获取和获取工作区文件夹期间,可以阻止项(如 /images 文件夹的内容)检索到工作区,并通过隐藏工作区文件夹获取最新操作。 有关详细信息,请参阅 Workfold 命令

/noprompt

禁止显示输入的任何提示。

/silent

表示 /noget,并指定创建分支时不会将输出写入命令提示符窗口。

/checkin

在一个操作中创建分支并将其签入到服务器。 此选项不会在本地工作区中创建任何挂起的更改。

/comment

向新分支添加注释。 此选项仅用于 /checkin 选项。

/author

标识新分支的作者。 此选项仅用于 /checkin 选项。

/recursive

对于文件夹,也对内部的所有文件进行分支。

言论

如果指定本地路径(如 c:\00101 但不指定 <versionspec>),TFVC 将使用本地工作区版本作为创建新分支的基础。

但是,如果指定服务器路径(如 $/00101/*.cs),但未指定 <versionspec>,TFVC 将最新的 Azure DevOps Server 版本用作创建新分支的基础。

有关如何使用 tf 命令行实用工具的详细信息,请参阅 使用 Team Foundation 版本控制命令

例子

以下示例假定 c:\projects 映射到工作区中的主文件夹。

以下示例创建一个分支文件,其中包含最新工作区版本的 314.cs,将其命名为 314_branch,并将其保存到磁盘上的当前目录,以及保存到映射到的 Azure DevOps Server 文件夹。

c:\projects>tf branch 314.cs 314_branch

以下示例将工作区版本 314.cs 的所有文件从当前 Azure DevOps Server 文件夹复制到 testdata Azure DevOps Server 文件夹,并将当前目录中的所有文件复制到映射到 testdata Azure DevOps Server 文件夹的工作文件夹中。

c:\projects>tf branch C:\314.cs $/testdata

以下示例将当前工作区版本的 testfiles 文件夹中的所有文件及其包含的所有项的文件复制到 testfiles_branch Azure DevOps Server 文件夹中,并将 c:\testfiles 映射到 testfiles_branch Azure DevOps Server 文件夹的本地文件夹中复制所有文件。

c:\projects>tf branch C:\testfiles $/testfiles_branch

以下示例创建 314.cs 分支,因为它存在于文件的 changeset #4 中。 在磁盘上的工作文件夹中,与在 Azure DevOps 服务器中一样,将创建标题为 csharp_branch 的分支文件。

c:\projects>tf branch C:\314.cs;C4 csharp_branch

以下示例在 12/12/03 上创建 314.cs 的新分支。 在磁盘上的工作文件夹中,创建标题为 314\branch 的分支文件 314\branch。

c:\projects>tf branch 314.cs;D12/12/03 314_branch

以下示例将应用 Beta1 标签 314.cs 版本分支,将其命名 为 beta1branch,并将其保存到磁盘上的当前目录,以及当前目录映射到的 Azure DevOps Server 文件夹。

c:\projects>tf branch 314.cs;LBeta1 314_Beta1branch