Subversion'unadd'?

Fed*_*rer 6 svn

我有许多文件要添加到subversion中.我没有花时间和每个人加一个,而是决定成为一个聪明的人,做一个:

svn add *
Run Code Online (Sandbox Code Playgroud)

..这是一个错误.有没有办法可以'取消'一切?我想添加大约7个文件...现在突出显示了额外的500多个自动生成的文件我不想添加!

我还没有承诺,所以希望有一种方法来解决这个问题!

psm*_*ars 12

除了添加的文件之外,您有任何更改吗?(svn status将告诉您 - 修改后的文件将显示为M,添加文件为A- svn diff并将显示任何更改的详细信息).如果没有,那么你可以这样做:

svn revert *
Run Code Online (Sandbox Code Playgroud)

但如果你确实有添加以外的更改,那将删除它们!

(可能值得首先尝试几个文件:-)


And*_*bel 8

svn st |grep ^A |cut -c 9- |xargs svn revert
Run Code Online (Sandbox Code Playgroud)

要首先验证将在不修改任何内容的情况下还原哪些文件,请排除最后一个命令:

svn st |grep ^A |cut -c 9-
Run Code Online (Sandbox Code Playgroud)

管道命令功能强大:

  • svn st 将统计一切
  • grep ^A 只会给出以字母A开头的行.
  • cut -c 9- 将从这些行获取文件名.
  • xargs svn revert将为svn revert每个文件名运行.

如果您使用的是Windows,则必须下载UnxUtils软件包或类似程序包,但这非常值得,因为它带来了许多强大的shell命令.


小智 8

您可以使用

svn rm --keep-local *
Run Code Online (Sandbox Code Playgroud)

所有文件将保持原样,不会还原.并unadd为提交步骤.