用备份替换目录后 VSTS 源代码控制绑定无效

VSTS source control bindings invalid after replacing directory with a backup

我在我的一个 ASP.NET 解决方案中更改了很多文件并签入。后来我意识到我想角色回到我原来的文件。我知道我可以去源代码管理资源管理器并回滚变更集,但我做错了。因为我在执行此操作之前备份了我的整个项目目录,所以我认为只需用我备份的文件替换目录就很容易了。

用备份替换整个目录后,当我打开解决方案时,我收到以下消息:

One or more source control bindings for this solution are not valid and are listed below. Source control bindings can be modified by selecting File, Source Control, Advanced, Change Source Control from the main menu.

下面列出了所有的 .csproj 文件。

我按照在许多网站上看到的说明进行操作,说明先解除绑定然后重新绑定,但它对我没有任何作用。

我的第一个问题是,如果它是具有所有源代码管理绑定的同一组文件,为什么会发生这种情况。

我的第二个问题是如何在源代码管理中再次获得这个备份的解决方案?

我希望它在源代码管理中向我显示未决的更改,以便在我签入源代码管理中的最新版本时将成为我的替换版本。

与windows文件系统不同,您不应该简单地复制并粘贴备份文件。它肯定会导致您遇到的源代码管理绑定冲突。

您应该使用回滚整个变更集 功能。这将影响您在 TFS 中的源代码管理。如果将文件回滚到早期版本,tfs 将消除该版本之后发生的所有变更集的影响。更多详情请查看本教程:Roll back changesets

由于您只需要返回旧版本文件,您现在可以将您的变更集回滚到您备份整个项目的那个。检查回滚操作。

另一种方法如下,如果 unbind/re-bind 项目不起作用:

  1. 在更改源代码管理中取消绑定项目
  2. 在解决方案资源管理器中卸载项目
  3. 在解决方案资源管理器中重新加载项目

注意:如果您使用上述选项,TFS 会将所有项目文件视为新添加到解决方案中的文件。