&引用;unadd";提交前将文件发送到svn 我在做递归的SnVald/Rebug时,包含了一个没有正确的忽略属性的文件夹。我现在有大约100个上传的二进制文件版本,但我还没有提交

&引用;unadd";提交前将文件发送到svn 我在做递归的SnVald/Rebug时,包含了一个没有正确的忽略属性的文件夹。我现在有大约100个上传的二进制文件版本,但我还没有提交,svn,Svn,在不删除所有文档的情况下,“撤消”此文件的最简单方法是什么?对于您不需要且尚未提交的每个文件,请尝试svn revert filename。或者,对有问题的文件夹执行svn revert-R folder,然后使用正确的配置重新执行操作 使用svn revert--recursive folder\u name 警告 svn revert本质上是危险的,因为它的全部目的是丢弃数据,即未提交的更改。一旦恢复,Subversion就无法恢复这些未提交的更改 svn rm--保留本地文件夹\u名称

在不删除所有文档的情况下,“撤消”此文件的最简单方法是什么?

对于您不需要且尚未提交的每个文件,请尝试
svn revert filename
。或者,对有问题的文件夹执行
svn revert-R folder
,然后使用正确的配置重新执行操作

使用
svn revert--recursive folder\u name


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

svn rm--保留本地文件夹\u名称


注意:在svn 1.5.4中,即使指定了--keep local,svn rm也会删除未版本化的文件。有关更多信息,请参阅。

有关文件-
svn还原文件名

对于文件夹-
svn revert-R文件夹

完整过程(Unix svn包):

检查文件不在SVN中:

> svn st -u folder 
? folder
添加所有(包括忽略的文件):

删除所有*忽略*文件的“添加”标志:

> cd folder

> svn revert --recursive folderToIgnore
Reverted 'folderToIgnore'
Reverted 'folderToIgnore/fileToIgnore1.txt'


> svn revert fileToIgnore2.txt
Reverted 'fileToIgnore2.txt'
在文件夹上编辑svn忽略

svn propedit svn:ignore .
添加两个单件行,仅包含以下内容:

folderToIgnore
fileToIgnore2.txt
检查将上载和提交哪些文件:

> cd ..

> svn st -u
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt


> svn ci -m "Commit message here"

若要在此基础上展开-
在不指定修订的情况下还原
,将撤消自上次签出以来对指定文件所做的任何更改,包括添加/删除计划更改。其中folder_name是执行“添加”操作的文件夹的父文件夹命令此答案不正确,非常危险-它将通过删除文件的本地副本来取消您的更改。布莱恩·莱西(Brian Lacy)下面的答案要好得多。伙计们,这回答了最初的问题:一个文件或文件夹被添加,然后被还原,只会恢复为无版本,而不会被删除。这正是问题所要问的。如果在修改过的文件上使用它,它当然会还原它们:但这不是问题所在。这甚至是链接页面上显示的非常具体的用例@朱丽叶:好吧,我想你和我对这个短语的理解不同:不删除所有文档。不幸的是,
svn revert
也会通过还原最新的
HEAD
版本来删除工作副本中新添加的更改。我删除了我的否决票,但我仍然觉得这个警告很重要。很高兴知道这一点,因为它允许您只需撤消“svn添加”,而不会丢失更改!您确定SVN 1.5.4会删除未版本的文件吗?该报告不可复制,并且没有其他关于此的电子邮件。如果您想“取消添加”文件,但仍保留这些文件,这是更好的答案。在执行此命令后,文件仍将与?地位,不!恢复是不安全的,因为它会释放所有本地changes@jpaugh-这正是我在回答中写的,不是吗?OP要求的(也是我期望的)是一个在不丢失本地更改的情况下撤消添加的命令<代码>svn还原。这里没有一个答案提到本地更改将因还原而丢失。没有!Revert是不安全的,因为它会丢失所有本地的changesthank,这正是我所需要的。它似乎只恢复了“添加”操作,而不涉及文件内容本身。我害怕失去本地更改,正如之前的回答中所评论的,但似乎没有任何文件受到损害。
folderToIgnore
fileToIgnore2.txt
> cd ..

> svn st -u
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt


> svn ci -m "Commit message here"