使用TortoiseSVN删除修订

使用TortoiseSVN删除修订,svn,version-control,tortoisesvn,Svn,Version Control,Tortoisesvn,我对我的SVN服务器使用了一些错误的代码更改 现在,标题修订为155,但我想删除最后2个修订,以便标题修订为153。换句话说,我想“撤销”我的最后两次提交 我怎样才能用乌龟做这个?TurtoiseSVN菜单中是否存在选项,或者我是否需要使用命令行?如果打开SVN日志,则可以右键单击某个修订,并使用“还原到此修订”或“还原此修订的更改”选项。这两个选项都将更新您的工作副本(然后您可以提交) 在OrtoiseSVN中没有删除修订的选项。从命令行: 将更改还原到文件: svn merge -r <

我对我的SVN服务器使用了一些错误的代码更改

现在,标题修订为155,但我想删除最后2个修订,以便标题修订为153。换句话说,我想“撤销”我的最后两次提交


我怎样才能用乌龟做这个?TurtoiseSVN菜单中是否存在选项,或者我是否需要使用命令行?

如果打开SVN日志,则可以右键单击某个修订,并使用“还原到此修订”或“还原此修订的更改”选项。这两个选项都将更新您的工作副本(然后您可以提交)

在OrtoiseSVN中没有删除修订的选项。

从命令行:

将更改还原到文件:

svn merge -r <newBadRev>:<oldRevToMergeBackTo> <filename>

不幸的是,对于OrtoiseSVN(或任何其他SVN客户机),没有办法真正删除修订,因为它完全从历史中消失了。更改SVN存储库的历史记录很困难,需要在服务器上进行操作-请参阅以下问题:


但是,您可以“撤消”签入,方法是进行新签入并将其更改回。这通常是通过一种称为“反向合并”的技术来实现的。请参见,例如,

作为更新工作副本的根目录,您应该使用以下命令:

svn merge -rHEAD:153 .
这将“撤消”153版的所有更改,使156版看起来像153版

别忘了事后承诺


您也可以在OrtoiseSVN上执行同样的操作:打开“显示日志”界面,选择修订版153,右键单击它,然后选择“从该修订版还原更改”。

我使用了来自的这些说明

但在之后立即单击提交很重要。直到我意识到这一点,我才开始发疯

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

  • 选择需要还原更改的文件或文件夹。如果要还原所有更改,则此文件夹应为顶级文件夹

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

  • 右键单击所选修订,然后选择关联菜单→ 回到这个版本。这将放弃选定修订后的所有更改

  • 作出承诺。


  • 我想说“交互式再基地”,但我不确定这是否正确…@KerrekSB:完全正确。。。对于git:-)。如果您真的需要删除(我不建议删除,除非有严重的损坏),则会有一些信息。这不会起任何作用。它不会删除旧的提交,而只是添加另一个提交。修正变化?当然可以。但绝对不要删除@也许您需要在恢复此修订版的更改后解决冲突,然后提交它。最好删除删除文件的修订。谢谢
    svn merge -rHEAD:153 .