繁体   English   中英

在提交之前“取消添加”一个文件到 svn

[英]“unadd” a file to svn before commit

我正在执行递归 svn add/commit,并且包含一个没有正确忽略属性的文件夹。 我现在有大约 100 个上传的二进制文件版本化,但我还没有提交。

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

使用svn revert --recursive folder_name


警告

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

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.revert.html

svn rm --keep-local folder_name

注意:在 svn 1.5.4 中,即使指定了 --keep-local,svn rm 也会删除未版本控制的文件。 有关更多信息,请参阅http://svn.haxx.se/users/archive-2009-11/0058.shtml

尝试svn revert filename为您不需要且尚未提交的每个文件。 或者,对有问题的文件svn revert -R folder执行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

全过程(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
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"

对于文件 - svn revert filename

对于文件夹 - svn revert -R folder

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM