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

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 |Visual Studio 2019 |Visual Studio 2017 |Visual Studio 2015 |Visual Studio 2013

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

注意

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

先决条件

若要使用 分支 命令,必须具有源项的 “读取 ”权限,并且目标文件夹的 “签出 ”和 “合并 ”权限设置为 “允许”。 有关详细信息,请参阅 默认 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 还可能包含格式项;版本中的版本信息。
newitem 指定目标文件或文件夹或目标父文件夹的名称。 如果 newitem 已存在并且是 Team Foundation 版本控制服务器文件夹,Team Foundation 会在其中创建分支项。 否则, newitem 指定目标文件或文件夹的名称。 如果目标已存在,则签入期间可能会发生冲突。
versionspec 提供 /version 选项的值。 有关 Team Foundation 如何分析版本规范以确定其范围内哪些项的详细信息,请参阅 使用 Team Foundation 版本控制命令
comment 提供有关分支的注释。
@commentfile 指定包含用于分支的注释的文件的路径。
authorname /author 选项的用户提供的值。
username /login 选项提供值。 可以将用户名值指定为 DOMAIN*UserName* 或 UserName

选项

选项

说明

/version

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

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

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

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

如果对工作区版本早于 Team Foundation 版本控制服务器中最新版本的文件进行分支,该文件将分支到较旧版本。

/lock

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

锁定选项:


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

/noget

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

注意

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

/noprompt

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

/Silent

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

/checkin

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

/comment

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

/author

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

/递归

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

注解

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

但是,如果指定服务器路径(如 $/00101/*.cs),但未指定 版本规范,Team Foundation 将使用最新的 Team Foundation 版本控制服务器版本作为创建新分支的基础。

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

示例

以下示例创建一个分支文件,其中包含最新版本的 314.cs,将其命名为“314_branch”,并将其保存到磁盘上的当前目录,以及保存到它映射到的 Team Foundation 版本控制服务器文件夹。

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

以下示例将工作区版本 314.cs 中的所有文件从当前 Team Foundation 版本控制服务器文件夹复制到 testdata Team Foundation 版本控制服务器文件夹中,并将磁盘上的当前目录复制到映射到 testdata Team Foundation 版本控制服务器文件夹的工作文件夹。

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

以下示例将当前工作区版本的 testfiles 文件夹中的所有文件复制到 testfiles_branch Team Foundation 版本控制服务器文件夹以及从 c:\testfiles 复制到映射到 testfiles_branch Team Foundation 版本控制服务器文件夹的本地文件夹中的所有项目的所有文件,而不挂起编辑。

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

以下示例创建 314.cs 的分支,因为它存在于文件的变更集 #4 中。 在磁盘上的工作文件夹中,与 Team Foundation 版本控制服务器一样,将创建标题为csharp_branch的分支文件。

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

以下示例在 12/12/03 上创建 314.cs 的新分支。 与 Team Foundation 版本控制服务器一样,在磁盘上的工作文件夹中,将创建标题为314_branch的分支文件。

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

以下示例将应用“Beta1”标签的 314.cs 版本分支为“Beta1branch”,并将其保存到磁盘上的当前目录,以及当前目录映射到的 Team Foundation 版本控制服务器文件夹。

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