git忽略多个匹配文件

git忽略多个匹配文件,git,Git,我试图通过相对路径忽略目录中的文件。例如,我在工作树lib/file.f中有几个目录,我希望忽略此文件的所有出现。我试过了 lib/file.f 但这不起作用。 */lib/file.f 在您的.gitignore中。这将导致git忽略格式为project//lib/file.f的任何文件,假设.gitignore位于project目录中。 要使git忽略下两个目录,还必须添加 */*/lib/file.f 到.gitignore,依此类推 当然,这要简单得多 *file.f 在.git

我试图通过相对路径忽略目录中的文件。例如,我在工作树
lib/file.f
中有几个目录,我希望忽略此文件的所有出现。我试过了

lib/file.f
但这不起作用。

*/lib/file.f
在您的
.gitignore
中。这将导致git忽略格式为
project//lib/file.f
的任何文件,假设
.gitignore
位于
project
目录中。 要使git忽略下两个目录,还必须添加

*/*/lib/file.f
.gitignore
,依此类推

当然,这要简单得多

*file.f

.gitignore
中,阻止所有名为
file.f
的文件,但您的问题似乎表明至少有一个同名文件您不希望忽略。

此外,您可能希望从git缓存中删除该文件,以便检查您刚才忽略的内容:

git rm --cached lib/file.f

如果您已经将文件添加到git索引中,则会出现这种情况。如果要指定特定文件夹下的所有子文件夹,请使用
/**/
。要忽略
/src/main/
文件夹和子文件夹中的所有
file.f
文件,请使用:

/src/main/**/file.f

@Holf
file.f
不起作用,因为您引用的文件本身没有路径(并且您的项目根文件夹中可能没有
file.f
)。这就是为什么unutbu的答案有完整路径的所有示例。
*file.f
有效,因为您使用了
*
通配符,因此它将忽略任何与您的模式匹配的文件——这真的是您想要实现的吗?