以下是我得到的部分:当您搁置在TFS中时,它会对更改进行服务器副本,这样它们就不会丢失,但不会将它们检入您正在处理的源代码中继/分支中。
问题:在什么情况下你会使用“取消保留”功能?这是否意味着它将从TFS服务器中删除搁置集?你可以从货架上取货吗?或者它真的只是shelveset和“真正的”源代码之间的差异描述?
答案 0 :(得分:61)
如果您将搁架恢复到机器上,那么您可以继续操作它。它不会更改服务器上的搁置集(为此,您需要再次搁置并使用相同的搁置集名称)。
我如何使用它的一个例子是在我处理它们的同时在机器之间移动更改。我将它搁置在台式机上,然后在笔记本电脑上取下它,然后继续使用笔记本电脑。
您还可以使用它与某人分享变更(代码审查或其他原因)。你搁置了你的变化,然后另一个人可以去取消它,看看你做了什么。
Unshelving实际上并没有改变搁置集或服务器上的任何其他东西。这只是一个获取操作。
答案 1 :(得分:31)
一个重要的警告:如果自创建搁置集后您已完成Get,则Unshelve将仅回滚搁置集中包含的本地版本文件 。因此,很可能你的工作空间不一致。
一个好的做法是始终重新运行“取消搁置后取得”。这可以确保您不会将时间浪费在幻像构建错误上,这实际上只是处于半新/半旧状态的副作用。它还要求您主动解决搁置集内容与最新服务器修订之间的任何冲突,而不是仅在@Checkin时间发现它们。
答案 2 :(得分:4)
我使用搁置来备份正在进行的代码,只是因为我的硬盘崩溃或其他原因。我甚至不必担心代码构建,更不用说工作,因为我的团队中的任何其他开发人员都不会看到这项工作(除非他们去寻找它)。
取消搁置将更改重新放回工作区中。从服务器中删除shelveset是一个删除。
继理查德伯格所说的之后,电动工具的脱壳版本实际上包括一个获得和解决。