gpt4 book ai didi

version-control - 更改映射时 TFS 删除了我的文件

转载 作者:行者123 更新时间:2023-12-04 07:09:53 25 4
gpt4 key购买 nike

我有一个很大的解决方案,这里有很多代码。由于 TFS 的一些问题,我想创建一个新的“干净”存储库。我删除了到旧存储库的映射,并尝试创建一个新映射。这导致了一个错误,即已经有一个到我的解决方案的映射。我去了Source Control Explorer -> Workspaces并在那里删除了到我的解决方案的映射。之后,我能够将我的新存储库映射到我的解决方案。

但是当我检查我的硬盘时,我差点心脏病发作:TFS 删除了我所有的代码文件!目录和依赖项仍然存在,但我所有的项目文件、我的解决方案文件和所有代码都不见了!

请 StackOverflow 帮助我!很多工作现在都没有了,我真的非常需要它回来:(

编辑 :我目前正在尝试使用几个文件恢复工具(如 Recuva)来恢复我的文件,但没有一个可以找到任何已删除的更改。但是文件真的不见了,Windows 搜索找不到它们,它们也没有隐藏。谁能告诉我这是为什么?文件还在我的 SSD 上吗?

最佳答案

像 TFS 这样的源代码控制系统都按照非常相似的方式工作。他们将服务器版本的代码视为“代码”——它是主副本,由服务器“拥有”。然后,您可以在您的 PC 上获取该代码的副本(通过添加工作区映射,您可以告诉它您希望将该副本放在哪里)。您可以对代码副本进行更改,然后将它们 checkin 以将它们应用回服务器上代码的主版本。

因此,如果您更改工作区映射(例如,将代码副本的位置从文件夹 A 更改为文件夹 B),您告诉源代码控制系统是“请拿走位置 A 中的代码副本,并将其放入 B”。所以这就是它删除所有“你的”代码的原因。它不是“你的”代码,而是服务器代码的副本——你要求它把它放在你电脑上的其他地方......所以它做到了。

但是,如果您编辑了工作区中的任何代码,这些文件将被 check out ,在这种情况下,TFS 会知道您有待处理的更改,并且它不应该删除这些文件 - 它应该报告尝试更改包含挂起更改的工作区映射时出错。

唯一不会发生这种情况的方法是,如果您手动将文件更改为可写文件并在 Visual Studio/TFS 之外对它们进行更改,那么 TFS 不知道您进行了更改。如果您“ secret ”更改了某些文件,TFS 可能会认为它们没有更改,因此将它们永久删除。这些文件可能不会出现在文件恢复工具中,因为通过要求 TFS 重新定位工作区,您可以删除文件,然后立即重新获取它们(到新文件夹中),这几乎肯定会覆盖已删除的数据文件。

如果您的更改可能已被 checkin ,那么您可以像这样找到它们:在 TFS 源代码控制 View 中转到您的团队项目。右键单击项目并选择“查看历史记录”选项。这将以相反的历史顺序列出项目的所有 checkin - 如果您 checkin ,那么您应该在此处看到您的 checkin 。 (您可以双击历史记录中的任何变更集条目以查看已更改的文件列表,如果您右键单击任何文件,您可以“比较...”以查看详细说明所做更改的差异)

如果这些更改不在您的 checkin 历史记录中,那么恐怕您已经丢失了它们。

您可能已经学会了这一点,但学会正确使用源代码控制等工具很重要 - 它们是有用且强大的工具,但如果您不了解它们的工作原理,它们可能会很危险。

关于version-control - 更改映射时 TFS 删除了我的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com