撤销 TortoiseSVN 中的提交

102
我不小心提交了一堆文件(不同文件夹中的几十个文件)。最简单、最干净(又安全!)的方法是如何“撤消”这个提交,而不必从我的工作目录中删除这些文件?
3个回答

156

进入显示日志屏幕,选择要撤销的修订版本,右键点击它并选择从此修订版本还原更改,这将执行反向合并


8
好的,我会尽力进行翻译。期望的结果是这样的,但在最新的 Tortoise(指软件或程序)版本中没有任何迹象。 - Anthony Main
42
记得提交更改,因为它只是本地合并。 - pihentagy
5
在执行此操作之前,请确保更新您的工作副本,否则将不会发生任何更改。 - Florian Brucker
1
此程序的文档:http://tortoisesvn.net/docs/release/TortoiseSVN_cn/tsvn-howto-rollback.html - Costa
TortoiseSVN > 显示日志 > <选择旧版本> > 还原到此版本 http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh/tsvn-howto-rollback.html - Satyendra
显示剩余2条评论

15

你可能需要使用命令行,但是你可以使用SVN合并命令,并反向指定修订版本来有效地还原提交。假设你的错误提交为r1123,则可以执行以下操作:

svn merge -r1123:1122 <url of your working copy>

当我这样做时,什么都没有改变: svn merge -r 1880:1879 https://server/myproject/branches/problem42 我已经尝试过带空格的方式,如“-r 1880:1879”,也尝试过不带空格的方式,如“-r1880:1879”。如果之后运行“svn st”,则什么也没有改变。 - neoneye

2
您可以将您的工作副本还原到提交之前的版本。一旦您还原了您的工作副本,然后简单地提交更改,您就会有效地回滚意外提交。
在您这种情况下,我可能会检查要回滚的版本,将其签出到新的工作副本中,然后将工作副本提交到头版本。

4
这是否表明您的修订版本已过时并需要在提交前进行更新?我认为您需要合并之前的版本,而不仅仅是更新到旧版本。 - Mnebuerquo
1
此外,该策略假定坏提交是前一个提交。您可能希望撤消一些较早发生的更改,而不是全部撤消。 - jpaugh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接