如何从版本控制中删除文件而不删除它?
如果我运行svn rm file
,该文件将从本地工作副本中删除。如何从版本控制中删除文件而不删除它?
我现在要做的是:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
如何避免SVN使用svn rm
时也删除本地文件?
您需要--keep-local
命令行选项。这将从文件系统中删除文件而不从文件系统中删除。
$ svn rm --keep-local my_important_file
Won一旦他们更新,它仍然从其他人的系统中删除它? – Nyerguds 2015-11-09 08:20:10
@Nyerguds这是正确的,因为svn rm正在从存储库中删除文件。如果您希望从回购库中删除文件,请将它们保存在本地机器上,然后使用上面的标记。 – 2016-02-22 13:31:00
@GregHilston正如我所说的那样,这并不能真正帮助实际的多程序员项目。应该有一种方法可以将文件解压到任何地方。这里最常见的情况是意外提交的本地设置文件(在Java项目中很常见),但是对其进行版本控制不应该擦除其他用户的设置文件。 – Nyerguds 2016-02-22 13:36:58
我没有回答这个确切的问题,但我有一个答案,一个相关的问题,那就是如何在一个目录从版本控制删除所有文件(即不特定的一个),而不在本地删除它们。该解决方案来自科学Linux实施。
ls -a .svn
应显示存储控制数据的SVN目录。简单地说:
rm -r .svn
将摆脱这个目录。然后键入:
svn status
将产生“警告:这个目录是不是工作拷贝”的错误,因为它不再是版本控制之下。
我希望这会有所帮助。
有关的问题?删除文件并删除整个工作副本是完全不同的东西恕我直言。 – Melebius 2017-11-15 13:21:59
从SVN中删除文件而不在本地删除它是一个常见问题。一个突出的例子是Eclipse项目中的文件.classpath。只要项目中使用的所有机器具有相同的Eclipse和Java安装,将此配置文件置于SVN下方就非常奇妙。一旦违反这个条件,提交就开始打破其他Eclipse项目。这是人们必须从SVN中删除文件而不删除任何地方的IST。
svn rm --keep-local .classpath
在一台机器上及时完成这项工作。
问题是其他机器可能会丢失该文件(更新时)或重新生成它(提交时)。 SVN的缺陷是既不能在存储库中处理--keep-local
也不能将其传播到其他工作副本。因此,在任何提交或更新之前,上述命令的所有其他机器必须最好执行—。
这当然会最好工作90%。删除和重新排版会突然发生。我的解决办法是让每一台机器,我必须直接或间接访问,请
svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine
这是顾左右而言他丑到几乎不称为“解决方案”。尽管如此,它总是可以快速修理任何后来发生的事故。
[SVN从存储库中删除文件而不删除本地副本]的可能重复(http://stackoverflow.com/questions/542065/svn-remove-file-from-repository-without-deleting-local-copy) – Shai 2014-06-16 13:38:29