使用 Team Foundation 版本控制命令
使用 Team Foundation 版本控制命令
您可以使用版本控制命令执行几乎可以在 Visual Studio 执行的所有任务,不能在 Visual Studio 完成的任务。 可以使用 tf.exe 工具运行的是版本管理命令从命令提示处或脚本中。
您希望做什么?
若要启动 Visual Studio 命令提示,从窗口 启动,选择 Microsoft Visual Studio 2012,Visual Studio 工具,然后选择一 命令提示符 快捷方式。
在大多数情况下,您运行的是版本管理命令在工作区域映射的目录中。 例如,$/SiteApp/Main/ 映射到 c:\code\SiteApp\Main\。 获取所有项的最新版本在工作区域:
c:\code\SiteApp\Main\SolutionA>tf get
说明 |
---|
我们当前未发布某些主题。 但是,可以读取这些主题的 Visual Studio 2010 版本。 |
将 dev 计算机和管理工作区域
您的工作区是团队的基本代码的本地副本。 由于它是您的 dev 计算机的本地副本,您可以开发和独立测试的代码,直到您准备好在您的工作的选项卡上。 下面是一些命令管理您的工作区域:
开发您的应用程序
使用这些命令开发您的应用程序在与团队的版本控制之下:
挂起您的工作
出于多种原因,有时需要留出一些或所有的正在进行的工作。 若要挂起和继续执行您的工作以及管理您的搁置集,使用这些命令:
请参阅:暂停工作并管理搁置集。
提供您的工作
这是如何在代码中切换到团队的基本代码:
请参见:向团队的代码库签入工作成果
管理文件和解决问题
隔离风险
使用分支,使用以下命令隔离风险:
管理版本控制
使用以下命令管理您的版本控制系统:
请参见:管理 Team Foundation 版本控制 (Visual Studio 2010)。
在版本控制命令获得帮助
使用以下命令以获得有关版本控制命令的更多信息:
每个命令语法显示在每个引用主题顶部。
必选参数和可选参数
需要非括起来的参数。 [Brackets] 指示不需要完成订单的可选参数。 但是,某些可选参数具有应用于命令的默认值,即使您未指定选项。
独占参数
当选项由分隔 (管道 | ),可以指定某个选项。
原义和的可替换参数
粗体项是包含原义字符串的选项。 Italicized 项目是必须在实际字符替换执行命令的参数。
命令快捷方式和别名
某些命令支持快捷方式。 例如,可以调用 删除命令 和 tf delete 或 tf del。
示例
例如,checkout 命令:
tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]
我们查看从此示例的参数:
-
itemspec:必须将 itemspec 替换指定项目签出的此参数。
-
/lock:(none|checkin|checkout):您无需指定 /lock 选项。 如果不指定它,则默认情况下该系统指定 /lock:none。 否则,可以指定一个锁定选项。
-
以下参数是可选的,并且,如果您没有提供它们,其效果都不适用于命令:
-
/recursive:如果递归有希望文件夹中选定多个项目,必须指定该选项原义。
-
/login:username,password:如果要运行命令作为另一个用户,必须指定 /login 选项原义,使用该用户的名称替换 username,并且,但是,如果需要,可以提供密码。
-
可以使用 itemspecs 和 versionspecs 指定哪些项受命令的影响。
使用 itemspec 参数指定受影响的项目
使用 itemspec (项规范) 指定命令的影响的项目。 可指定项在客户端或您的 Team Foundation Server。 可以使用通配符例如 * 和 ?。
客户端 itemspec 参数
客户端 itemspec 参数指定路径。项目在一个客户端 (例如文件夹 (例如,c:\code\SiteApp\Main\SolutionA\) 文件 (例如,c:\code\SiteApp\Main\SolutionA\Project1\program.cs 或多个文件 (例如,c:\code\SiteApp\Main\SolutionA\*.cs。 还可以指定 UNC 路径例如 \\myshare\code\SiteApp\Main。
服务器 itemspec 参数
服务器 itemspec 参数指定路径。项目中的 Team Foundation Server (例如文件夹 (例如,$/SiteApp/Main/SolutionA) 文件 (例如,$/SiteApp/Main/SolutionA/Project1/program.cs 或多个文件 (例如,$/SiteApp/Main/SolutionA/*.cs。
当您需要运行项目中的命令不会在客户端时,通常会使用服务器 itemspec 参数。 例如,可以在 dev 设备工作并需要获取有关团队项目集合不使用的一些项目的某些修订历史记录数据:
c:\>tf history /collection:http://fabrikam-3:8080/tfs/DefaultCollection $/SiteApp/Main/SolutionA/Project1/* /recursive /noprompt
多个 itemspec 参数
对于某些命令,可以指定多个 itemspec 参数。 例如:
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
选定 program.cs 和 program2.c。
使用 versionspec 参数指定项目的受影响的版本
使用 versionspec (版本规范) 指定命令的影响项目的版本。 若要提供 versionspec 可以:
-
使用 /version 选项。 例如:/version:C44。
-
追加 versionspec 到用分号的一 itemspec。 例如:program1.cs;C44。
当您使用 History 命令 或 Difference Command时,可以通过用代字号的版本指定版本的范围 (|)。 例如:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012
使用以下语法指定 versionspec。
类型 |
语法 |
描述 |
---|---|---|
变更集 |
[C] n |
指定根据变更集编号的项目。 如果范围中项目中指定的变更集尚未修改,则系统将在指定的变更集之前发生项的最新版本。 提示
如果只指定数字,则可以忽略 C。
示例 c:\code\SiteApp\Main>tf get readme.txt /v:C8 --或者-- c:\code\SiteApp\Main>tf get readme.txt /v:8 --或者-- c:\code\SiteApp\Main>tf get readme.txt;8 如果 readme.txt 在变更集 8 被修改时,获取文件的该版本。 否则,在第 8. 版之前获取 readme.txt 的最新版本。 |
Label |
L label |
指定 label 是应用程序的项目。 示例 c:\code\SiteApp\Main>tf get readme.txt;LJulyHotFix 获取已标记 JulyHotFixreadme.txt 的版本。 c:\code\SiteApp\Main>tf get /version:LLastKnownGood 在工作区域中检索所有标记为的项 (和删除的版本未标记的项),它们为 自动生成过程一部分,那么,当为 LastKnownGood 标记的变更集所创建的,例如,可能。 |
日期和时间 |
D yyyy-mm-ddTxx:xx - 或 - D mm/dd/yyyy - 或 - 任何支持 .NET Framework 的格式。 - 或 - 在本地计算机上支持的任何一个日期格式。 |
在指定日期和时间指定创建的变更集。 示例 c:\code\SiteApp\Main>tf get /version:D2004-03-22 更新工作方面的达标基本代码,当在 3/22/2004 存在了 00:00 (午夜)。 c:\code\SiteApp\Main>tf get /version:D2004-03-22T09:00 更新工作方面的达标基本代码,当在 3/22/2004 存在了 09:00 (9 AM)。 有关以下内容的详细信息 .NET framework 支持,日期和时间格式显示 DateTime 和 标准日期和时间格式字符串。 |
工作区域的活动) |
W |
在您的工作区域指定版本。 |
工作区域 (指定) |
W workspacename; workspaceowner |
在指定的工作区域指定版本。 例如:WResolveRIConflicts;PeterW |
提示 |
T |
指定最新版本。 |
如何使用这些常用的选项修改命令函数。
使用 /noprompt 选项会取消需要数据输入和输出数据重定向到命令提示符窗口
使用 /noprompt 选项会取消需要数据输入和输出数据重定向到命令提示符窗口。 此选项非常有用,在脚本时需要使用版本控制命令,因为该命令执行,不干扰由用户,并且,这些数据可以使该脚本中执行操作 (如分析或获取。
当您使用此选项,系统:
-
禁止显示所有要求输入:
-
问题在命令提示符窗口不会询问。 例如,那么,当您使用此选项时的 Undo 命令 ,系统不提示您确认是否继续执行撤消更改。
-
不存在的窗口和对话框。 例如,您使用 Checkin 命令使用此选项。 而不是显示您的 签入 对话框可以确认所需工作项到 tab 或工作项关联) 的选项 (,系统会继续选项卡上,而无需确认。
-
-
将输出重定向到数据命令提示。 例如,您使用 History 命令使用此选项。 该数据在命令提示符窗口中将显示而不是 历史记录"窗口。
在运行命令时,请使用 /login 选项指定凭据
使用 /login 选项指定 Team Foundation Server 用户帐户运行命令。 工作,则在另一个团队成员时,计算机此选项会很有用。
例如,茱莉亚使用针对在他的 dev 计算机。 她使用 锁定命令 打开该文件的她前面已锁定:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword
如果她为避免她的密码出现在命令提示符处,则可输入命令,无需密码:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI
在她输入此命令后,该系统将提示她键入其在掩码她的输入的对话框的密码。
使用 /lock 选项应用或移除锁定
重要事项 |
---|
作为一个最优方法,请使用注意的 /lock 选项并通知您的团队成员为何锁定某项,并且,当您计划移除锁时。 |
使用 /lock 选项适用或移除锁定您同时运行另一个命令例如 添加 或 编辑。
/lock:(none|checkin|checkout)
-
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 |