如何使用 TortoiseSVN 恢复全部或部分 SVN 提交?

有帮助吗?

解决方案

首先,您需要确定您想要还原“所有更改”。修订,或只是一个文件。 TortoiseSVN只有“1或全部”。办法;意思是,您可以恢复整个签到集或单个文件:不是部分签入。

整个变更集

因此,如果还原特定修订版(并且您希望更改该更改集中的所有文件),则需要右键单击 - > TortoiseSVN - >显示日志。找到要回滚的修订/变更集,右键单击该修订版“还原到此版本”。

还有另一个可能让您感兴趣的选项,即“从此修订版还原更改”,它将在该修订版本与当前版本之间进行差异合并,并仅合并差异。我发现这有时更吸引人;所以,我可以保持变更集之间的所有变化。

单个文件

另一种选择是还原单个文件。您将再次进行右键单击 - > TortoiseSVN - >显示日志;但这一次,您可以选择单个文件。

TortoiseSVN不允许您在变更集中选择多个文件以恢复为。它可以是全部,也可以只是1.

变更集签到

对于所有其他人阅读,请确保“签到”仅涉及与该更改相关的文件。这应该是现在常见的做法;但是,我仍然发现开发人员“射击游戏”当天结束时的签到,将当天的所有更改捆绑到一个单一的签到中。

我眯着眼睛看着那些开玩笑的人。 -_ ^

其他提示

如果您想恢复之前所做的提交(修订):

与探索者:

  1. 右键单击要恢复的文件/文件夹,
  2. TortoiseSVN->显示日志,
  3. 右键单击不需要的修订,
  4. “恢复此修订版的更改”,
  5. 提交->确定。

如果您想撤消本地所做的更改(未提交)

与探索者:右键单击文件,TortoiseSVN->恢复。

另外,根据Bartek的说法,您可以签出对本地工作副本的特定修订,然后将其提交给负责人。

请注意,您只能“还原”从某种意义上说,您签入了一个新版本,该版本不再包含您想要还原的更改。这在其他答案中有所描述。

你可以实际撤消签入(如“它从未发生过”),旧状态仍将在存储库的历史记录中。

真正撤消/删除内容是一项长期存在的功能要求:

http://subversion.tigris.org/issues/show_bug.cgi ?ID = 516个

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top