从 SVN 存储库中删除文件而不删除本地副本

Posted

技术标签:

【中文标题】从 SVN 存储库中删除文件而不删除本地副本【英文标题】:Remove file from SVN repository without deleting local copy 【发布时间】:2010-10-07 05:22:19 【问题描述】:

我如何“删除”已经在 SVN 存储库中的文件而不从我的文件系统中删除它?

欢迎使用 TortoiseSVN 或命令行指令。

以下工作,但我希望有更好的东西:

    将文件复制到存储库之外的其他位置。 SVN 删除文件。 提交 将文件复制回来,并确保在以后的提交中忽略它们。

【问题讨论】:

【参考方案1】:
svn delete --keep-local the_file

【讨论】:

我收到“svn: invalid option: --keep-local” - 是因为我在 1.4.6 上吗? @barfoon:是的,--keep-local 仅在 svn 1.5.0+ 中可用。恐怕您必须事先手动复制文件或使用 svn cat 进行检查。 并且记得在这个操作之后做一个提交。 当用户更新时,他们会从存储库中获取最新版本。由于问题询问如何从存储库中删除文件,因此其他用户在更新时会发现 the_file 已删除。 这就是我试图避免的。一旦某些东西被意外签入,就很难从 SVN 中删除一些东西......【参考方案2】:

Deleting files and folders

如果您想从存储库中删除项目,但将其作为未版本控制的文件/文件夹保留在本地,请使用扩展上下文菜单 → 删除(保留本地)。您必须在右键单击资源管理器列表窗格(右窗格)中的项目时按住 Shift 键才能在扩展的上下文菜单中看到它。

彻底删除: 鼠标右键→菜单→删除

删除并保留本地: Shift + 鼠标右键单击 → 菜单 → 删除

【讨论】:

【参考方案3】:

在 TortoiseSVN 中,您还可以Shift + 右键单击​​以获取包含“删除(保留本地)”的菜单。

【讨论】:

【参考方案4】:

重命名您的文件,提交包括“已删除”文件在内的更改,并且不包括新的(重命名的)文件。

重命名您的文件。

【讨论】:

【参考方案5】:

当你想从 SVN 中删除一个 xxx.java 文件时:

    转到文件所在的工作区路径。 从文件夹 (xxx.java) 中删除该文件 右键单击并提交,然后将打开一个窗口。 从文件夹中选择你删除的文件(xxx.java),然后再次右键删除..它将从SVN中删除该文件。

【讨论】:

这将删除文件 - 但问题不在于从 SVN 中删除原始文件后是否保留原始文件?

以上是关于从 SVN 存储库中删除文件而不删除本地副本的主要内容,如果未能解决你的问题,请参考以下文章

如何从 git 存储库中删除文件而不实际删除文件 [重复]

删除 SVN 分支

SVN 从存储库中删除更改,但将它们保留在我的结帐中?

在 SVN 中不提交行)而不从文件中删除它们?

从存储库中删除文件但将其保留在本地

如何删除文件夹的Subversion控件?