Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
可以使用版本控制命令执行几乎可以在 Visual Studio 中执行的所有 Team Foundation 版本控制(TFVC)任务。 还可以使用版本控制命令执行无法在 Visual Studio 中完成的多个任务。 若要从命令提示符或脚本中运行版本控制命令,请使用该工具 tf.exe 。
运行命令
若要启动 Visual Studio 命令提示符,请从 Windows 开始,选择 VS2022 或更低版本的开发人员命令提示符快捷方式。
注释
对于 Visual Studio 2019 及更高版本,二 tf.exe 进制文件不再位于 Visual Studio 安装路径中的固定位置,例如 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE,在某些以前的版本中。 如果脚本使用 tf.exe,请不要根据 Visual Studio 安装路径对文件的路径进行硬编码。
在大多数情况下,在工作区中映射的目录的上下文中运行版本控制命令。 例如, $/SiteApp/Main/ 映射到 c:\\code\\SiteApp\\Main\\. 若要获取工作区中所有项的最新版本,请使用以下命令:
c:\code\SiteApp\Main\SolutionA>tf get
设置开发计算机和管理工作区
工作区是团队代码库的本地副本。 因为它是开发计算机上的本地副本,因此可以隔离开发和测试代码,直到准备好签入工作。 下面是用于管理工作区的一些命令:
有关详细信息,请参阅以下资源:
开发应用
使用以下命令与团队在版本控制下开发应用:
- 添加命令:将文件和文件夹添加到版本控制。
- 签出(或编辑)命令:签出文件并更改其挂起的更改状态以 编辑。
- 删除命令(Team Foundation 版本控制):从 Azure DevOps 服务器中删除文件和文件夹,并将其从磁盘中删除。
- 获取命令:获取 (下载) 最新版本或指定版本的一个或多个文件或文件夹从 Azure DevOps Server 到工作区。
- 重命名命令(Team Foundation 版本控制):更改文件或文件夹的名称或路径。
- Status 命令:显示有关工作区或货架集中文件和文件夹挂起更改的信息。
- 撤消命令:放弃对文件或文件夹的指定挂起更改。
- 取消删除命令:还原以前删除的项。
有关详细信息,请参阅 在 Team Foundation 版本控制中开发应用。
暂停工作
出于各种原因,有时需要预留部分或全部正在进行的工作。 若要暂停和恢复工作并管理货架集,请使用以下命令:
有关详细信息,请参阅 “暂停工作并管理货架集”。
参与工作
checkin使用命令将代码签入团队的代码库:
- 签入命令:签入对服务器的文件或文件夹的挂起更改。
有关详细信息,请参阅 “签入工作”到团队的代码库。
管理文件并解决问题
使用以下部分中的资源来管理文件。
查看和管理版本控制文件和文件夹
- 属性(或信息)命令:显示有关版本控制中的项的信息。
- Dir 命令:显示版本控制服务器的内容。
- Destroy 命令(Team Foundation 版本控制):永久删除版本控制的文件。
- LocalVersions 命令:显示工作区项的版本。
有关详细信息,请参阅 使用源代码管理资源管理器管理版本控制下的文件。
查看和管理过去的版本
- Changeset 命令:更改或显示变更集属性。
- 历史记录命令:显示文件或文件夹的修订历史记录。
- 标签命令(Team Foundation 版本控制):附加或删除文件或文件夹中的标签。
- Labels 命令:显示有关服务器中使用的标签的信息。
- 回滚命令(Team Foundation 版本控制):回滚更改集的效果。
- 取消标记命令:从服务器中的现有标签中删除项。
- 视图命令:检索文件的指定版本并显示它。
有关详细信息,请参阅 查看和管理过去的版本。
比较文件夹和文件
- Difference 命令:比较文件和货架集之间的差异。
- Folderdiff 命令:比较两个文件夹中的文件之间的差异。
有关详细信息,请参阅 查看和管理过去的版本。
解决文件冲突
- 解决命令:解决工作区和服务器上的项之间的冲突。
有关详细信息,请参阅 解决 Team Foundation 版本控制冲突。
使用版本控制锁
- Lock 命令:锁定或解锁文件和文件夹。
有关详细信息,请参阅 “使用版本控制锁”。
隔离风险
使用以下命令通过分支隔离风险:
有关详细信息,请参阅 使用分支在 Team Foundation 版本控制中隔离风险。
管理版本控制
使用以下命令管理版本控制系统:
有关详细信息,请参阅 “配置签出设置”。
获取有关版本控制命令的帮助
使用以下命令获取有关版本控制命令的详细信息:
了解命令语法
每个命令的语法显示在每个参考文章的顶部。
必需参数和可选参数
非括号参数是必需的。 [括号] 指示完成命令不需要的可选参数。 但是,即使未指定选项,某些可选参数也默认应用于命令。
独占参数
当选项由管道(|)分隔时,可以指定其中一个选项。
逐字和可替换参数
未括在括号中的项是包含逐字的选项。 括在尖括号(< 和 >)中的项是必须替换为实际字符才能执行命令的参数。
命令快捷方式和别名
某些命令支持快捷方式。 例如,可以使用或 tf delete.. 调用 tf del。
Example
例如,请考虑 “签出”命令:
tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]
此示例包括下列参数:
-
<item-spec>:必须将此参数替换为用于标识要签出的项目的项目 的项规范 。 - 下列参数是可选的。 如果未提供它们,则其效果均不适用于命令:
-
/lock:(none|checkin|checkout):如果未指定/lock该选项,则系统默认使用/lock:none。 否则,可以指定其他锁选项之一。 -
/recursive:如果要以递归方式签出文件夹中的多个项目,则必须逐字指定此选项。 -
/login:<username>, <password>:如果要以其他用户身份运行命令,则必须指定/login该选项逐字并替换为<username>用户的名称。 如有必要,请替换为<password>用户的密码。
-
指定受命令影响的项
可以使用项规范和版本规范来指定哪些项受命令影响。
使用项规范参数指定受影响的项
使用项规范指定受命令影响的项。 可以在客户端计算机或 Azure DevOps 服务器上指定项。 可以使用通配符,例如 *?。
客户端项规范参数
客户端项规范参数指定客户端计算机上项的路径,例如:
- 例如 ,文件夹 c:\code\SiteApp\Main\SolutionA\。
- 例如,文件 c:\code\SiteApp\Main\SolutionA\Project1\program.cs。
- 多个文件,例如 c:\code\SiteApp\Main\SolutionA\*.cs。
- 通用命名约定 (UNC) 路径,例如 \\myshare\code\SiteApp\Main。
服务器项规范参数
服务器项规范参数指定 Azure DevOps 服务器上的项的路径,例如:
- 例如, 文件夹 $/SiteApp/Main/SolutionA。
- 例如, 文件 $/SiteApp/Main/SolutionA/Project1/program.cs。
- 多个文件,例如 $/SiteApp/Main/SolutionA/*.cs。
当需要对不在客户端计算机上的项运行命令时,通常使用服务器项规范参数。 例如,假设你正在使用开发计算机。 如果需要获取一些修订历史记录数据,说明项目集合中某些项不起作用,可以使用以下命令:
c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
多个项规范参数
对于某些命令,可以指定多个项规范参数,例如:
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
此命令将签出 program.cs 和 program2.c。
使用版本规范参数指定受影响的项版本
使用版本规范指定受命令影响的项的版本。 若要提供版本规范,可以:
/version使用选项,例如/version:C44。使用分号将版本规范追加到项规范中,
program1.cs;C44例如。
使用 History 命令 或 Difference 命令时,可以通过使用波形符分隔版本来指定一系列版本,例如:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022
使用以下语法指定版本规范:
| 类型 | Syntax | Description | 例子 | 结果 |
|---|---|---|---|---|
| 变更集 | [C]<version-number> |
根据更改集编号指定项。 如果指定变更集中未修改作用域中的项,则系统会获取指定变更集之前发生的项的最新版本。 如果仅指定数字,则可以省略 C 。 |
tf get readme.txt /v:C8tf get readme.txt /v:8tf get readme.txt;8 |
如果在变更集 8 中修改 了readme.txt ,则示例代码将获取该文件的版本。 否则,它会获取版本 8 之前 的最新readme.txt 版本。 |
| 标签 | L<label> |
指定标签应用于的项。 | tf get readme.txt;LJulyHotFixtf get /version:LLastKnownGood |
第一个示例获取标记为 JulyHotFix 的readme.txt 的版本。 第二个检索所有已标记项的版本(并删除工作区中未标记的项),因为它们在创建标记为 LastKnownGood 的变更集时存在。 可以在第二个示例中使用代码作为 自动化生成过程的一部分。 |
| 日期和时间 | D<yyyy-mm-ddTxx:xx>或 D<mm/dd/yyyy>或 任何 .NET Framework 支持的格式。 或 本地计算机上支持的任何日期格式。 |
指定在特定时间在指定日期创建的变更集。 | tf get /version:D2022-03-22tf get /version:D2022-03-22T09:00 |
第一个示例更新工作区,使其与 2022 年 3 月 22 日午夜存在的代码库匹配。 第二个更新工作区以匹配代码库,因为它存在于 2022 年 3 月 22 日上午 9:00。 有关 .NET Framework 支持的日期和时间格式的详细信息,请参阅 DateTime 和 标准日期和时间格式字符串。 |
| 当前工作区 | W |
指定工作区中的版本。 | - | - |
| 指定的工作区 | W<workspace-name>; <workspace-owner> |
指定指定工作区中的版本。 | tf get /version:WResolveRIConflicts;PatW |
该示例指定拥有的 ResolveRIConflicts 工作区 PatW 中的版本。 |
| 小窍门 | T |
指定最新版本。 | - | - |
使用选项修改命令函数的方式
可以使用一些常见选项来修改命令的运行方式。
/noprompt使用此选项可抑制数据输入请求和重定向输出数据
/noprompt使用此选项可取消对数据输入的请求,并将输出数据重定向到命令提示符窗口。 当需要在脚本中使用版本控制命令时,此选项非常有用,其中:
- 该命令在用户无需干预的情况下继续。
- 数据可供脚本执行作,例如分析或捕获。
使用此选项时,系统会:
禁止所有输入请求:
- 命令提示符窗口中未提出问题。 例如,将 “撤消”命令 用于此选项时,系统不会提示你确认是否要撤消更改。
- 不会显示 Windows 和对话框。 例如,可以将此选项与 Checkin 命令一起使用。 系统不会显示“ 签入 ”对话框,用于确认项目和关联的工作项。 相反,系统会在不确认的情况下签入项。
将输出数据重定向到命令提示符。 例如,可以将此选项与 “历史记录”命令一起使用。 数据显示在命令提示符窗口中,而不是 “历史记录”窗口。
使用 /login 选项指定凭据
使用 /login 选项指定要在其中运行命令的 Azure DevOps 服务器用户帐户。 在另一个团队成员的计算机上工作时,此选项非常有用。
例如,假设你在团队成员的开发计算机上工作。 使用 Lock 命令 解锁之前锁定的文件:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>
如果想要避免在命令提示符中显示密码,则可以在没有密码的情况下输入命令:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>
输入此命令后,系统会提示你在屏蔽输入的对话框中输入密码。
/lock使用选项应用或删除锁
重要
最佳做法是随意使用 /lock 该选项。 通知队友你锁定项目的原因,以及何时计划删除锁。
/lock使用此选项可在运行其他命令(如添加或编辑)的同时应用或删除锁。
/lock:(none|checkin|checkout)
该 /lock 命令使用以下选项:
None:项目上没有锁。 如果锁已到位,则会将其删除。Checkin或Checkout:应用锁。 有关详细信息,请参阅 “了解锁类型”。
使用选项快捷方式
可以缩写以下选项。
选项
选项别名
/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
了解退出代码
版本控制命令返回以下退出代码:
退出代码
定义
0
成功。
1
部分成功。 至少有些东西,或者可能一切都未能成功。
2
无法识别的命令。
100
什么都没成功。
例如,假设你运行以下命令:
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
如果尝试签出的文件之一不存在于服务器上,该命令将返回 1 以指示部分成功。