我正在做一个递归的svn添加/提交,并没有包含适当的忽略属性的文件夹。我现在有大约100个上传的二进制文件版本,但我还没有承诺。“unadd”一个文件提交之前svn
在不删除所有文档的情况下,“撤消”这个最简单的方法是什么?
我正在做一个递归的svn添加/提交,并没有包含适当的忽略属性的文件夹。我现在有大约100个上传的二进制文件版本,但我还没有承诺。“unadd”一个文件提交之前svn
在不删除所有文档的情况下,“撤消”这个最简单的方法是什么?
使用svn revert --recursive folder_name
svn revert
本身是非常危险的,因为它的全部目的是要扔掉的数据 —即,您提交的更改。一旦你恢复,Subversion提供没有办法找回那些未提交的更改。
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.revert.html
尝试svn revert filename
为您不需要和尚未提交的每个文件。或者对于有问题的文件夹执行svn revert -R folder
,然后使用正确的忽略配置重新执行操作。
you can undo any scheduling operations:
$ 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 rm --keep-local folder_name
注:SVN 1.5.4 SVN RM指定--keep本地时甚至删除版本文件。有关更多信息,请参见http://svn.haxx.se/users/archive-2009-11/0058.shtml。
这是很好的知道,因为它允许您只需撤消“svn add”而不会丢失更改! – 2012-01-20 14:18:43
你确定SVN 1.5.4删除了未版本控制的文件吗?该报告无法复制,并且没有其他电子邮件。 – 2013-10-17 08:29:54
这是更好的答案,如果你想“取消”文件,但仍然保留它们。在这个命令后,这些文件仍然会在那里?状态。 – 2014-10-03 18:46:49
有关文件 - svn revert filename
的文件夹 - svn revert -R folder
不!恢复是不安全的,因为它会丢失所有本地更改 – jpaugh 2016-05-24 16:34:27
全过程(Unix的SVN包):
检查文件不在SVN:
> svn st -u folder
? folder
添加所有(包括忽略文件):
> svn add folder
A folder
A folder/file1.txt
A folder/folder2
A folder/folder2/file2.txt
A folder/folderToIgnore
A folder/folderToIgnore/fileToIgnore1.txt
A fileToIgnore2.txt
删除 “添加” 标志的所有*忽略*文件:
> 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
fileToIgnore1.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"
要进一步扩展 - 没有指定修订版本的'revert'将撤消自上次结帐以来发生的对指定文件的任何更改,包括添加/删除调度更改。 – Amber 2010-05-25 17:32:04
其中folder_name是您执行“添加”命令的文件夹的父文件夹 – MacGyver 2013-08-10 21:56:17
此答案危险地不正确 - 它将通过删除文件的本地副本来取消您的更改。 Brian Lacy的回答下面好多了。 – 2016-05-19 12:04:21