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

221

我该如何在不从文件系统中删除文件的情况下“删除”已经在SVN存储库中的文件?

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

以下方法可以解决问题,但我希望有更好的方法:

  1. 将文件复制到存储库外的其他位置。
  2. 使用SVN Delete命令删除文件。
  3. 提交更改。
  4. 将文件复制回来并确保在以后的提交中忽略它们。
5个回答

270
svn delete --keep-local the_file

4
我得到了一个“svn: invalid option: --keep-local”的错误提示 - 这是因为我使用的是1.4.6版本吗? - barfoon
7
@barfoon:是的,--keep-local 参数只在svn 1.5.0以上版本可用。恐怕您需要在之前手动复制文件或在检出后使用svn cat命令来查看文件。 - phihag
4
在此操作之后记得提交(commit)。 - Teemu Leisti
1
有人知道当其他用户更新时,这个过程是否会从他们的计算机中删除文件吗? - BrDaHa
4
当用户进行更新时,他们将从代码库中获取最新版本。由于问题要求如何从代码库中删除文件,其他用户在更新时会发现该文件已被移除。 - phihag
4
我本来就想避免这种情况。一旦意外提交到版本控制系统(SVN)中,就很难将其彻底删除。 - BrDaHa

108

删除文件和文件夹

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

完全删除:
鼠标右键单击 → 菜单 → 删除

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


65
在TortoiseSVN中,您还可以使用Shift+右键单击以获取菜单,其中包括“删除(保留本地)”。

1

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

将文件重新命名回去。


-2

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

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

2
这将删除文件 - 但问题不是关于在从SVN中删除后保留原始文件吗? - Timothy Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接