git忽略多个匹配文件

Posted

技术标签:

【中文标题】git忽略多个匹配文件【英文标题】:git ignore multiple matching files 【发布时间】:2011-12-18 07:47:50 【问题描述】:

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

lib/file.f

但这不起作用。

【问题讨论】:

【参考方案1】:

地点

*/lib/file.f

在您的.gitignore 中。这将导致 git 忽略 project/<DIR>/lib/file.f 形式的任何文件,假设 .gitignore 位于 project 目录中。 要让 git 忽略 lib/file.f 两个目录,您还必须添加

*/*/lib/file.f

.gitignore,等等。

当然要简单得多,就是放置

*file.f

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

【讨论】:

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

您可能还想从 git 缓存中删除该文件,以检查您刚刚忽略的内容:

git rm --cached lib/file.f

如果你已经将文件添加到 git index

【讨论】:

【参考方案3】:

如果您想指定特定文件夹下的所有子文件夹,请使用/**/。要忽略 /src/main/ 文件夹和子文件夹中的所有 file.f 文件,请使用:

/src/main/**/file.f

【讨论】:

以上是关于git忽略多个匹配文件的主要内容,如果未能解决你的问题,请参考以下文章

git 配置忽略文件规则

git ignore 添加忽略文件不生效解决办法

Git 忽略提交 .gitignore

设置git忽略文件

Sourcetree忽略文件

git命令行其他