我有一个SVN工作目录。我在该目录中做了一些更改,它显示在svn状态中。但是有没有办法让我删除其中的所有更改,只使用命令行从主干中获取所有内容呢?


当前回答

如果你在windows上,下面的for循环将恢复所有未提交的对你的工作空间的更改:

for /F "tokens=1,*" %%d in ('svn st') do (
  svn revert "%%e"
)

如果你想删除所有未提交的更改和所有未版本化的对象,它将需要2个循环:

for /F "tokens=1,*" %%d in ('svn st') do (
  svn revert "%%e"
)
for /F "tokens=1,*" %%d in ('svn st') do (
  svn rm --force "%%e"
)

其他回答

svn revert -R .
svn cleanup . --remove-unversioned

您可以使用以下命令恢复所有本地更改:

svn st -q | awk '{print $2;}' | xargs svn revert
svn status | grep '^M' | sed -e 's/^.//' | xargs rm

svn update

将删除已修改的任何文件。我似乎记得当文件和目录可能已经添加时,在恢复时遇到了麻烦。

SVN还原将撤销您所做的任何本地更改