svn是否有“全部还原”命令?

svn是否有“全部还原”命令?,svn,command-line,Svn,Command Line,如果我想放弃所有更改,并返回存储库中的代码,我将执行以下操作: $ rm -fr * $ svn up 这很容易,但我想知道是否有一个命令可以实现这一点,比如: $ svn revert-all 有一个命令 svn revert -R . 或 您可以使用--depth=infinity,这实际上与上面相同: svn revert --depth=infinity svn revert本质上是危险的,因为它的全部目的是丢弃数据,即未提交的更改。一旦恢复,Subversion就无法恢复那些

如果我想放弃所有更改,并返回存储库中的代码,我将执行以下操作:

$ rm -fr *
$ svn up
这很容易,但我想知道是否有一个命令可以实现这一点,比如:

$ svn revert-all
有一个命令

svn revert -R .

您可以使用--depth=infinity,这实际上与上面相同:

svn revert --depth=infinity 
svn revert
本质上是危险的,因为它的全部目的是丢弃数据,即未提交的更改。一旦恢复,Subversion就无法恢复那些未提交的更改

使用递归开关--recursive(-R)

你可以做:

svn revert -R .
这不会删除任何不受版本控制的新文件。但您可以很容易地编写一个shell脚本来实现这一点,如:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done

要还原已修改的文件,请执行以下操作:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

欢迎使用SO,并感谢您提供了全面的答案,因为
svn revert-R
与我给出的两个命令并不相同。要删除Windows命令行中不受版本控制的所有文件,答案如下:用户指出(在现已删除的答案中)可能需要使用
-R
标志来确保未版本目录也被删除,这是放弃所有更改的一部分。如果你觉得这个答案对你合适,请考虑把它加入到你的答案中。<代码> -R 相当于深度=无穷远>代码>你的CMD“SvRun-R”缺少语法中的当前目录。它应该是“svn revert-R”。目前,这篇文章听起来像是
-R
--depth infinity
是互斥的,但事实并非如此。@ahnbizcad这两个同义词不是吗?这是我的观点。这个答案让这两个听起来不一样。“互斥”=同义词的反义词我认为我的格式更改代表了您想要的内容。如果您不喜欢,请回滚。谢谢,很高兴能回忆起SVN过去糟糕的日子…:)谁使用-fr而不是-rf?发音为rimraf,而不是rimfer是有原因的。@Jimmyhoff原因是什么?大会的Wilson!约定,先生!没有我们的纪律和文化传统,我们只是野蛮人!我说,你好,先生!另见:|
sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'