本文档描述了 Subversion 1.6.x 系列。如果你正在运行其他版本的 Subversion,我们强烈建议你访问 https://svnbook.subversion.org.cn/ 并查阅适合你的 Subversion 版本的文档。

名称

svn revert — 撤销所有本地修改。

概要

svn revert PATH...

描述

撤销对文件或目录的任何本地修改并解决任何冲突状态。 svn revert 不仅会还原工作副本中项目的 内容,还会还原任何属性更改。 最后,你可以使用它来撤消你可能执行的任何计划操作(例如,计划添加或删除的文件可以被 取消计划)。

选项

--changelist ARG
--depth ARG
--quiet (-q)
--recursive (-R)
--targets FILENAME

示例

丢弃对文件的更改

$ svn revert foo.c
Reverted foo.c

如果你想还原整个目录的文件,请使用 --depth=infinity 选项

$ svn revert --depth=infinity .
Reverted newdir/afile
Reverted foo.c
Reverted bar.txt

最后,你可以撤消任何计划操作

$ svn add mistake.txt whoops
A         mistake.txt
A         whoops
A         whoops/oopsie.c

$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops

$ svn status
?       mistake.txt
?       whoops
[Warning] 警告

svn revert 本身很危险,因为它的主要目的是丢弃数据,即你未提交的更改。 撤销后,Subversion 无法恢复这些未提交的更改。

如果你没有向 svn revert 提供任何目标,它将不会执行任何操作。 为了保护你免于意外丢失工作副本中的更改, svn revert 要求你显式提供至少一个目标。