62

使用 Windows TortoiseSVN将我的工作副本恢复到以前的版本的最简单方法是什么?

我没有找到任何“可找到”的命令来快速做到这一点。

4

6 回答 6

125

有几种方法可以做到这一点。但不要只是按照这里的建议更新到较早的版本

从单个修订版或一系列修订版还原更改的最简单方法是使用修订日志对话框。这也是您想要放弃最近的更改并将较早的修订版作为新 HEAD 的方法。

  1. 选择需要还原更改的文件或文件夹。如果要还原所有更改,这应该是顶级文件夹。
  2. 选择 TortoiseSVN → 显示日志以显示修订列表。您可能需要使用Show AllNext 100显示您感兴趣的修订。
  3. 选择要还原的修订。如果要撤消一系列修订,请选择第一个并按住Shift,同时选择最后一个。请注意,对于多个修订,范围必须是完整的,没有间隙。右键单击所选修订,然后选择Context MenuRevert从此修订更改。
  4. 或者,如果您想将较早的修订版设为新的 HEAD 修订版,请右键单击所选修订版,然后选择Context MenuRevert to this revision。这将放弃选定修订后的所有更改。

您已恢复工作副本中的更改。检查结果,然后提交更改。

所有解决方案都在“我如何... ”中进行了解释。TortoiseSVN 文档的一部分。

于 2011-04-01T13:03:16.280 回答
8

我使用了相同的说明Stefan,取自Tortoise 网站

但重要的是在 之后单击 COMMIT。直到我意识到这一点,我才变得疯狂。

如果您需要进行较旧的修订,则您的头部修订请执行以下操作:

  1. 选择需要还原更改的文件或文件夹。如果要还原所有更改,这应该是顶级文件夹。

  2. 选择 TortoiseSVN → 显示日志以显示修订列表。您可能需要使用 Show All 或 Next 100 来显示您感兴趣的修订。

  3. 右键单击选定的修订,然后选择上下文菜单 → 恢复到此修订。这将放弃选定修订后的所有更改。

  4. 做出承诺。

于 2014-06-09T12:31:36.970 回答
4

右键单击受 SVN 控制的文件夹,转到TortoiseSVN显示日志。写下你想要恢复的版本,然后去TortoiseSVN更新到版本...。

在此处输入图像描述

于 2011-03-31T17:41:26.450 回答
1

上下文菜单中的 Revert 命令会忽略您的编辑并将工作副本返回到其先前状态。当您从存储库中“签出”时,您还可以选择“头”以外的所需修订。

于 2011-03-31T17:41:20.480 回答
1

这是另一种非正统但有效的方法*。

我最近发现自己处于检查破坏代码的情况,知道在所有集成工作完成之前我无法更新我们的生产代码(回想起来这是一个错误的决定,但我们没有预计会停滞不前,但其他项目优先)。那是几个月前的事了,整合一直停滞不前。随之而来的要求是更改基本代码并在上周将其投入生产,而无需进行重大更改。

这是我们所做的:

在我签入之前验证新要求在使用修订版时不会破坏任何内容后,我制作了包含新代码的工作目录的副本。然后我删除了工作目录中的所有内容并检查了我想要的版本。然后我删除了我刚刚签出的所有文件,并从工作副本中复制了这些文件。然后我提交了该更改,有效地从存储库中清除了重大更改,并将生产代码作为主要修订版本。我们仍然有可用的重大更改,但它不再在头部修订中,因此我们可以继续进行生产。

*我不推荐这种方法,但如果你发现自己处于类似的情况,这是一个不会太痛苦的出路。

于 2018-03-19T15:56:46.657 回答
0

在 TortoiseSVN 上下文菜单中,选择“更新到修订版”,输入所需的修订版号,然后瞧 :)

于 2011-03-31T17:40:10.170 回答