本文字档正在撰写中,内容随时可能变更,可能与任何已发布的 Apache™ Subversion® 软件版本不符。将此页面添加为书签或推荐给其他人可能不是明智之举。请访问 https://svnbook.subversion.org.cn/ 查看此书的稳定版本。

名称

svn delete (del, remove, rm) - 从工作副本或仓库中删除项目。

概要

svn delete PATH...

svn delete URL...

描述

PATH 指定的项目将在下次提交时被删除。文件(以及未提交的目录)将立即从工作副本中删除,除非指定了 --keep-local 选项。该命令不会删除任何未版本化或已修改的项目;使用 --force 选项可以覆盖此行为。除非使用 --force 选项,否则包含未版本化或已修改项目的目录将不会被删除。

由 URL 指定的项目将通过立即提交从仓库中删除。多个 URL 将被原子性地提交。

选项

示例

使用 svn 从工作副本中删除文件会删除您本地副本中的文件,但它只是将文件计划从仓库中删除。当您提交时,文件将在仓库中被删除。

$ svn delete myfile
D         myfile

$ svn commit -m "Deleted file 'myfile'."
Deleting       myfile
Transmitting file data .
Committed revision 14.

但是,删除 URL 是立即进行的,因此您需要提供日志消息

$ svn delete -m "Deleting file 'yourfile'" \
             file:///var/svn/repos/test/yourfile

Committed revision 15.

以下是一个强制删除具有本地修改文件的示例

$ svn delete over-there 
svn: E195006: Use --force to override this restriction (local modifications m\
ay be lost)
svn: E195006: '/home/sally/project/over-there' has local modifications -- com\
mit or revert them first
$ svn delete --force over-there 
D         over-there
$

使用 --keep-local 选项可以覆盖 svn delete 默认行为,即同时删除计划版本化删除的目标文件。这在您意识到自己不小心提交了一个您需要保留在工作副本中但不应该被添加到版本控制中的文件的添加操作时很有用。

$ svn delete --keep-local conf/program.conf
D         conf/program.conf

$ svn commit -m "Remove accidentally-added configuration file."
Deleting       conf/program.conf
Transmitting file data .
Committed revision 21.
$ svn status
?       conf/program.conf
$
[Note] 注意

--keep-local 选项的行为不会传播到包含您已计划删除的项目的其他工作副本。如果您提交了这些项目的删除操作,它们将保留在您的工作副本中,但在其他包含这些项目的副本更新时将从这些副本中删除。

TortoiseSVN 官方中文版 1.14.7 发布