Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何单独获取特定版本?_Version Control - Fatal编程技术网

Version control 如何单独获取特定版本?

Version control 如何单独获取特定版本?,version-control,Version Control,如何快速简便地将文件夹、文件或visual studio项目的特定更改集从TFS获取到单独的目录,而无需覆盖当前本地版本的“我的工作区”?我通常只需要一份早期版本的源代码副本 到目前为止,我找到的唯一解决方案是使用新的目录映射创建一个单独的工作区。但当我想继续使用原始工作区时,似乎需要删除该新工作区,否则TFS会抱怨。这对我来说似乎相当乏味,而且实际上并不可行 我想要得到一个特定的版本作为一个单独的副本,这难道不是一个常见的场景吗?为什么这在TFS中如此困难 也许我的工作流程很糟糕,这是一种糟糕

如何快速简便地将文件夹、文件或visual studio项目的特定更改集从TFS获取到单独的目录,而无需覆盖当前本地版本的“我的工作区”?我通常只需要一份早期版本的源代码副本

到目前为止,我找到的唯一解决方案是使用新的目录映射创建一个单独的工作区。但当我想继续使用原始工作区时,似乎需要删除该新工作区,否则TFS会抱怨。这对我来说似乎相当乏味,而且实际上并不可行

我想要得到一个特定的版本作为一个单独的副本,这难道不是一个常见的场景吗?为什么这在TFS中如此困难


也许我的工作流程很糟糕,这是一种糟糕的做法?也许MS故意让我很难做到我想做的事?

也许我没有完全理解你的问题,但是:
当您从文件或文件夹的上下文菜单中选择“历史记录”时,您可以将该文件作为单独的文件打开。

难道您不能获取所需的更改集,将其复制到其他地方,然后获取最新的更改集以覆盖旧的更改集吗?

请注意,如果您有两个工作空间,并且希望在它们之间切换,没有必要删除任何内容。只需确保转到“源代码管理资源管理器”和/或“挂起的更改”中的“工作区”下拉列表,然后选择要更改上下文的正确选项即可。显然,如果您正在两个工作区中处理项目,则需要从相应的工作文件夹中打开/关闭项目

这就是说,如果您只是在进行历史比较以查看发生了哪些更改,那么您可以对特定的更改集进行文件夹级别的比较,而无需实际执行签出


如果您正在进行更改,因为您需要进行热修复,那么我建议您从特定的更改集进行分支,而不是切换工作区。原因是第二个工作区的签入仍然会影响主工作区中的代码,因为它们都指向源代码管理中的相同文件夹。

Ok,对于单个文本文件,我可以这样打开它,然后将其保存到磁盘。但是一个二进制文件,一个完整的目录或者一个VisualStudio项目怎么样?是的,我知道你和我的问题。我现在还不知道。上一个版本也是如此,这也不容易。上一个版本其实很容易。将特定版本添加到普通本地工作区文件夹,然后再次签入该文件夹。从设计上讲,如果您丢失了某些版本,则无法进行纯回滚。如果您启用了“签出时获取最新版本”,则tfs在您编辑/签入时始终获取最新版本,因此取消签入以前的版本。是的,在这种情况下,您必须禁用该设置。这是我通常所做的。但这很乏味,尤其是当涉及到很多文件时。此外,它还需要我先撤消搁置所有挂起的更改。我希望找到一个更简单的方法,如果不是的话,我想知道我的工作流程是否很糟糕,或者是一种糟糕的做法,MS让我很难做到我想做的事情。