Shelve 命令 (Team Foundation 版本控制)

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

Visual Studio 2019 |Visual Studio 2022

Team Foundation 版本控制 (TFVC) shelve 命令在 Azure DevOps 服务器上存储一组挂起的更改,以及挂起的签入说明、注释和关联工作项列表,而无需实际签入这些更改。

先决条件

如果要使用 shelve 命令删除搁置集,则必须是搁置集所有者,或者必须将 “管理搁置的更改 ”权限设置为 “允许”。 有关详细信息,请参阅 默认 TFVC 权限

语法

tf shelve  [/replace] [/comment:("comment"|@commentfile)] [shelvesetname] [/validate][/noprompt] [/login:username,[password]]
tf shelve [/move] [/replace] [/comment:("comment"|@commentfile)] 
[/recursive] [shelvesetname] itemspec [/validate] [/noprompt] [/login:username,[password]]
tf shelve /delete shelvesetname[;owner] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]

参数

参数

Argument 说明
<commentfile> 指定应从中读取搁置集注释的文件的文件系统路径。
<comment> 指定搁置集的注释。
<itemspec> 标识要搁置的文件或文件夹。 默认情况下,如果未指定此参数,则当前工作区中所有挂起的更改将被搁置。 有关 Team Foundation 如何分析 itemspec 以确定哪些项在范围内的详细信息,请参阅 使用选项修改命令的工作方式
<shelvesetname> 指定可从 Azure DevOps 服务器检索搁置集的名称。 可以指定 和 owner的现有组合shelvesetname,但前提是/replace还指定了 。

必须为此参数提供值。
<owner> 按用户名标识搁置集的当前或预期所有者。 默认情况下,如果未指定搁置集,则会为当前用户分配货架集的所有权。
<username> 为 选项提供值 /login 。 可以将用户名值指定为 DOMAIN\usernameusername
<TeamProjectCollectionUrl> 包含要搁置的文件或文件夹的项目集合的 URL,例如 http://myserver:8080/tfs/DefaultCollection/

选项

选项 说明
/new 每个待处理的更改的选定状态(如 Visual Studio Check In 对话框中所示),注释、关联工作项、签入说明和签入策略替代原因将作为挂起的更改存储在开发计算机上,直到签入这些更改。 选项 /new 在签入之前清除此签入元数据。
/move 在搁置操作成功后,从工作区中删除挂起的更改。
/replace 将现有搁架集替换为与指定的名称和所有者相同的名称和所有者。
/delete 删除指定的搁置集。 只能将 /server 选项与此选项结合使用。 如果未包含 选项, /noprompt 则指定选项时 /delete 会显示一条确认消息。
/comment 添加描述搁置更改的指定注释。
/recursive 搁置指定搁置文件夹中的所有项目、其子文件夹以及其中的所有项(如果 itemspec 所提供的是文件夹)。
/noprompt 禁止输入的任何提示。
/validate 此选项在打开“搁置 - 源文件”对话框中选中“在搁置前评估策略和签入说明”复选框。 选中验证复选框后,对话框将评估签入策略,并验证是否已填写签入说明。 当其他人将更改移交以供审阅和签入时,此选项非常有用。 与 /noprompt结合使用时无效。
/login 指定使用 Azure DevOps Server 对用户进行身份验证的用户名和密码。
/collection 指定项目集合。

注解

shelve命令行实用工具的tf命令在 Azure DevOps 服务器上的搁置集中备份挂起的更改、关联的工作项列表、正在进行的签入说明和注释。 搁置集非常类似于未提交到服务器的变更集。 与变更集一样,任何具有足够权限的用户都可以将搁置集从服务器检索到本地工作区。

搁置是签入尚未经过充分测试的挂起更改的替代方法。 如果要中断工作,请使用搁置:

  • 与其他开发人员或测试人员共享一组本地工作文件,而无需签入对版本控制服务器的更改。

  • 暂时搁置一组挂起的更改,而无需将其签入,因此可以改用处理优先级更高的问题。 完成高优先级任务后,可以使用 Unshelve 命令还原搁置的更改。

如果包含 /move 选项,该命令会将 shelve 每个搁置文件修订回滚到从服务器检索到的最新版本 的基工作区版本 到当前工作区。 具体而言,对于搁置的所有项, /move 选项:

  • 使用 Undo 撤消搁置的更改。 挂起添加的文件将从工作区中删除。

  • 将挂起版本从服务器检索到当前工作区中存在的所有文件的基工作区版本。

  • 将当前工作区中的所有项标记为只读。

如果包含 /delete 选项,TFVC 会从 Azure DevOps 服务器中永久删除指定的搁置集。

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

示例

以下示例在 Azure DevOps 服务器上创建一个名为 Reflector_BuddyTest的新搁置集,向用户分配所有权 Pat,将当前工作区中的所有项返回到上次 get 操作期间下载的最新版本,并设置只读状态:

c:\projects> tf shelve Reflector_BuddyTest;Pat /move

以下示例从服务器中删除现有搁置集 new-feature ,按该名称创建新的搁置集,并保留当前工作区中所有挂起的更改:

c:\projects> tf shelve new-feature /replace

以下示例创建名为 HelloWorld_TestMe 的搁置集,其中包含对 C:\projects 工作文件夹及其子文件夹中所有 .cs 文件的所有挂起更改:

c:\projects> tf shelve HelloWorld_TestMe c:\projects\*.cs /recursive

以下示例删除 HelloWorld_24 搁置集:

c:\projects> tf shelve HelloWorld_24 /delete