Branch 命令(Team Foundation 版本控制)

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

Visual Studio 2019 | Visual Studio 2022

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

注意

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

先决条件

要使用 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]

参数

参数

Argument 说明
<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

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

  • 日期/时间 (D10/20/2005)
  • 变更集编号 (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 Server 中最新版本的文件进行分支,则在较旧的版本中对文件进行分支。

/lock

在签入挂起的分支和关联的更改前,阻止其他用户签入或签出项。 有关详细信息,请参阅了解锁定类型

锁定选项:

  • none
    默认。 未应用锁定。 如果要为其创建分支的文件上存在锁定,则此选项会将其移除。
  • checkin
    其他用户可以签出指定项,但在你通过执行签入来释放锁定之前,他们无法签入对锁定文件的修订。 如果任何其他用户已经锁定了任何一个指定项,锁定操作将失败。
  • checkout
    在你通过执行签入来释放锁定之前,此选项会阻止其他用户签入或签出任何指定项。 如果任何其他用户已经锁定了任何一个指定项,锁定操作将失败。

/noget

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

注意

可以通过掩蔽工作区文件夹,防止在递归 Get 和 Get latest 操作期间将项(如 /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 文件夹中没有挂起的编辑的所有文件及其包含的所有项的文件从其当前 Azure DevOps Server 文件夹复制到 testfiles_branch Azure DevOps Server 文件夹,并从 c:\testfiles 复制到映射到 testfiles_branch Azure DevOps Server 文件夹的本地文件夹。

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

以下示例按照文件的变更集 #4 中存在的版本,创建 314.cs 的分支。 在磁盘上的工作文件夹中,与在 Azure DevOps Server 中一样,创建名为 csharp_branch 的分支文件。

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

以下示例按照 2003/12/12 的版本创建 314.cs 的新分支。 在磁盘上的工作文件夹中,与在 Azure DevOps Server 中一样,创建名为 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