Destroy 命令 (Team Foundation 版本控制)
Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
使用 tf destroy
命令从 Team Foundation 版本控制(TFVC)销毁或永久删除版本控制的文件。
注意
创建 TFVC 存储库后,不允许删除 Azure Devops 中的 TFVC 存储库。 命令 tf destroy
只会销毁或永久删除版本控制的文件或文件夹,但不会删除 TFVC 存储库。 它仍将显示在已删除邮件的选项列表中。
有时必须清理版本控制系统。 例如,如果某些文件感染了计算机病毒,则必须将其永久从版本控制中删除。 请勿销毁仍需要的文件。 无法撤消销毁操作。
在不使用 /keephistory
选项运行 tf destroy
之前,请先删除要销毁的文件。 有关详细信息,请参阅 从版本控制中删除文件和文件夹。
删除文件后,可以同步 TFVC 仓库。 否则,仓库不会与销毁的项同步。
先决条件
若要使用 destroy
命令,请属于 Team Foundation 管理员 安全组。 有关详细信息,请参阅 默认 TFVC 权限。
语法
tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>...<itemspecN>]
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt] [/silent] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]]
参数
参数
参数
说明
<itemspec1> [<itemspec2>...<itemspecN>]
指定要销毁的文件或文件夹的服务器路径。 使用多个 itemspec
值删除多个项。 例如,tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3
。
不支持本地路径。
<versionspec>
提供 /keephistory
或 /stopat
选项的 C58
等版本。 允许的值是 date
、tip
或特定的变更集。 有关 TFVC 如何分析版本规范以确定其范围内哪些项的详细信息,请参阅 使用 Team Foundation 版本控制命令。
<username>
为 /login
选项提供值。 可以将 username
值指定为 DOMAIN\username
或 username
。
TeamProjectCollectionUrl
包含要销毁的文件的项目集合的 URL,例如,http://myserver:8080/tfs/DefaultCollection
。
选项
选项
说明
/keephistory
自选。 指定即使文件内容被销毁,文件历史记录也会保留。 无法使用 /preview
选项指定此选项。
/stopat
自选。 仅当同时指定 /keephistory
时,才能使用。
指定文件的文件版本,以及随后保留其历史记录的文件。
/stopat
的默认版本是 tip
(T)作为项目的最新签入版本。
不能使用标签或工作区 versionspec
值来指定 /stopat
选项的项。
/preview
显示将在命令提示符窗口中销毁的文件。
tf destroy
在预览模式下运行时,文件实际上不会销毁。
注意
命令提示符窗口中的文本显示 销毁 单词,其中包含要销毁的每个文件。 但是,使用 /preview
选项时,实际上不会销毁该文件。
/startcleanup
强制 TFVC 元数据清理过程在删除完成后立即启动。 如果用户未指定 /startcleanup
,则数据库维护会清理 Azure DevOps Server 不再引用的所有文件时,将执行销毁的元数据清理过程。 默认情况下,清理计划每五天运行一次。 清理 TFVC 元数据七天后,内容会由另一个清理过程删除。 默认情况下,此内容清理过程每天运行一次。
/noprompt
或 /i
指定文件销毁是非交互式的。
/i
是 /noprompt
的别名。
/silent
指定销毁文件或文件夹时,输出不会写入命令提示符窗口。
/login
指定使用 TFVC 对用户进行身份验证的用户名和密码。
/collection
指定项目集合。
言论
使用 tf destroy
销毁版本控制文件时,TFVC 的应用程序层会收到销毁请求并检查你是否是 Team Foundation Administrators 安全组的成员。 如果你不是成员,系统将显示一个错误消息对话框,告知你没有足够的权限来执行该操作。
系统验证权限后,它会运行 destroy 命令。 此命令删除所有文件引用、搁置集和挂起的更改。 下次清理不再由 Azure DevOps Server 引用的内容时,文件的实际销毁是永久删除。 还可以指定 /startcleanup
选项,以在运行 tf destroy
后立即清理文件。
如果在未指定 /i
和 /preview
的情况下运行 tf destroy
,系统将显示控制台 “是”或 每个 filespec
值“无 提示”。 否则,可以指定 “是”到“所有。
如果未指定
/keephistory
,系统会提示显示警告挂起更改的交互式文本(如果存在)。 如果需要有关更改的详细信息,交互式文本指向/preview
。如果指定
,则还 “是” 、“否 ”或“对所有 文本”是”。 如果选择 是 或 “是”到所有,则销毁过程将启动,并且销毁项的服务器路径将显示在命令提示符窗口中。
Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: ...
如果将 versionspec
值指定为 tip
,则命令提示符窗口中显示的服务器路径包括删除 ID。 例如,命令提示符窗口中可能会显示 Destroyed: $/Test1/MyProject;X123
。
如果使用 /preview
选项,则不会销毁文件,但命令行文本显示将销毁的文件。 例如,如果在命令行中输入 tf destroy /preview $/Test1/MyProject/MyProject/Program.cs
,则命令窗口将显示以下文本:
Destroyed: $/Test1/MyProject/MyProject/Program.cs
但是,文件实际上不会销毁,因为你使用了 /preview
选项。
有关如何使用 tf
命令行实用工具的详细信息,请参阅 使用 Team Foundation 版本控制命令。
/keephistory 对其他版本控制操作的影响
如果指定 /keephistory
选项来保留已销毁文件的历史记录,则文件将被视为由以下 TFVC 操作销毁:
更改内容。 如果尝试更改已销毁文件的内容(例如编辑或分支),系统会发出一条错误消息,指出内容已被销毁。
Branch、merge 或 unshelve。 如果尝试分支、合并或取消保留已销毁的项,系统将发出一条错误消息,指出项的内容已被销毁。
销毁以前删除的项
如果项目已被删除,则会将删除 ID 附加到它,并导致文件名更改。
tf 销毁对 TFVC 存储库代码搜索的影响
代码搜索不会处理 tf destroy
通知,因此对 TFVC 存储库使用 tf destroy
不会自动从搜索索引中删除文件。 因此,这些文件将显示在代码搜索结果中。 若要避免这些虚影文件方案,请删除 tf destroy
操作前的文件。
例子
以下示例永久删除文件 a.cs。
tf destroy $/proj/pi/a.cs
以下示例删除文件夹,aFolder:
tf delete $/MyTeamProject/aFolder
若要销毁已删除的项 aFolder,请在命令行中输入:
tf destroy $/MyTeamProject/aFolder;x123
其中 x123
是删除 ID。