"SVN 回复”,撤销本地未提交修改(`svn revert`)或回滚已提交的版本(`svn merge` 反向合并),两者场景与命令完全不同 。
1. 未提交修改的撤销(本地还原):丢弃工作区所有改动,恢复到最后一次提交的状态。
- 单文件:`svn revert <文件路径>`
- 整个目录(递归):`svn revert -R <目录路径>`
- 注意:此操作不可逆,未提交的代码将永久丢失;无法撤销已 Commit 的历史。
2. 已提交版本的回滚(仓库级回退):通过“反向合并”生成一个新提交,抵消旧版本的变更(保留历史记录)。
- 步骤 1:更新代码 `svn update`
- 步骤 2:查看日志找版本号 `svn log`(假设需回退版本号为 `REV`)
- 步骤 3:执行反向合并 `svn merge -c -REV .`(负号表示撤销该次变更)
- 步骤 4:解决冲突后提交 `svn commit -m "回滚版本 REV"`
- 注意:SVN 不支持物理删除历史版本,此法生成新修订版使内容回到过去状态 。
图形化工具(TortoiseSVN)操作
- 撤销本地修改:右键文件/目录 → TortoiseSVN → Revert。
- 回滚已提交版本:右键 → TortoiseSVN → Show log → 选中目标版本 → 右键选择 Revert to this revision(内容回退)或 Revert changes from this revision(撤销特定变更)。
请根据是否已经执行了 `svn commit` 选择对应方案:未提交用 `revert`,已提交用 `merge -c -<版本号>`。