TortoiseSVN怎么撤销已提交?用反向合并生成新修订
要撤销已经提交到SVN仓库的内容,应在TortoiseSVN的修订日志中选中目标修订,执行【Revert changes from this revision】生成反向改动,检查无误后再提交一次。原修订不会从日志消失,仓库会新增一条把它抵消掉的修订。
TortoiseSVN撤销提交先在日志中定位修订
在需要撤销的文件或目录上右键,选择【TortoiseSVN】→【Show Log】。日志窗口上方列出修订、作者、日期和提交说明,下方可查看选中修订改动过的文件。核对修订号和改动范围,避免把相邻提交一起撤掉。

目标是单次错误提交时,右键该修订并选择【Revert changes from this revision】。要撤销连续范围,可在日志中用Shift选择首尾修订。不连续的修订可用Ctrl分别选择。这个命令会先在本地工作副本生成改动,不会立刻修改仓库。
检查反向合并结果后再提交
核对反向改动
查看工作副本的改动列表。反向合并会把目标修订中的文件改动反着应用回来。打开差异视图确认新增、删除和修改是否都符合预期,尤其要留意同一文件后来是否又有其他提交。
处理冲突
有冲突先解决冲突。工作副本原本存在本地修改,或者目标修订与后续修改交叠,都可能需要人工处理。保留要继续使用的内容,再完成冲突解决和项目验证,不要直接把未检查的冲突标记为已解决。
确认工作副本只留下这次撤销需要的改动后,执行【SVN Commit】。提交说明写清撤销的修订号和原因,其他成员更新后就会获得撤销后的状态。
也可以在工作副本上选择【TortoiseSVN】→【Merge】,选【Merge a range of revisions】并填入要回滚的修订范围。确认勾选【Reverse merge】后执行合并。完成后仍要检查工作副本,再提交反向改动。
本地未提交修改才使用Revert
Revert的作用
【TortoiseSVN】→【Revert】用于丢弃工作副本自上次更新以来的本地修改,并不等同于撤销已提交修订。
执行前保留本地内容
它会放弃当前文件内容,执行前把需要保留的试验性修改另存或提交。
撤销单次错误提交时,优先选择【Revert changes from this revision】。它只抵消该次修订的影响。日志里的【Revert to this revision】会放弃目标修订之后的全部改动,适用范围更大。核对日志和改动文件后再执行,避免把后来已经验证过的提交一并撤回。






