您不能忽略存储库中已存在的文件。
忽略主要用于创建不想意外放入存储库的文件时。例如,在 C中,您*.o
从. 如果我将工作目录设置为忽略这些文件,版本控制系统将不会报告它们。*.c
*.class
*.java
想象一下这个设置:
$ svn st
M foo.txt
M bar.txt
? ignore.me
该文件ignore.me
被报告。现在,我将忽略它:
$ svn ps svn:ignore 'ignore.me' .
$ svn st
M .
M foo.txt
M bar.txt
请注意,ignore.me
当我获得状态时,它不再显示。但是,我可以添加它:
$ svn add ignore.me
M .
M foo.txt
M bar.txt
A ignore.me
请注意,它显示在我的状态报告中。那是因为它现在是存储库的一部分(或者一旦我提交)。我们使用 Java,我们所有的构建内容都放在一个名为target
. 我们还有一个build.properties
文件可以由开发人员设置以更改构建的工作方式。但是,这是一个针对每个开发人员使用的文件,不应将其签入我们的存储库。
因此,我将build.properties
和添加target
到我的svn:ignore
. 有时我会从项目中删除.project
and .classpath
,然后也删除ignore
那些。这些是 Eclipse 文件,应该在每个开发人员的基础上进行设置。
如果您需要阻止人们签入对特定文件的更改,甚至添加特定文件(这不仅是忽略,而且是防止任何人故意添加文件),您需要一个pre-commit 钩子。这将有助于强制执行您的设置并防止用户进行他们不应该进行的更改。