如何向 .gitignore 中的深层嵌套文件添加异常?

How to add an exception to a deeply nested file in .gitignore?

我们正试图忽略一个文件夹并向该文件夹中的特定文件添加例外,该文件夹嵌套了好几层。

这是我现在的做法(可行,但很复杂)

/ignored_folder/*
!/ignored_folder/foo/
/ignored_folder/foo/*
!/ignored_folder/foo/exception_file.txt

有没有办法简化这个,适用于任何深度?此配置不会使 exception_file.txt 成为忽略异常 (不起作用):

/ignored_folder/*
!/ignored_folder/foo/exception_file.txt

如果您只想要那个确切的行为而不关心它是否是一个优雅或可维护的解决方案,您可以在 .giignore 中只有 /ignored_folder/* 并且当您创建 exception_file.txt您可以使用 git add --force /ignored_folder/foo/exception_file.txt.

覆盖忽略规则

请注意,您只需执行一次。一旦 exception_file.txt 被跟踪,它将不会被忽略,因为忽略规则仅适用于新文件。

然而,正如我所说,这是不雅的,但它确实创造了那种行为。

忽略文件夹意味着根本不查看它们的内部,并且 ignored_folder/* 匹配(现在误导性命名的)ignored_folder 中的文件夹名称。你要

ignored_folder/**
!ignored_folder/**/

那是“递归地忽略 ignored_folder 内的所有 文件 ,但不要跳过嵌套文件夹,无论如何都要查看它们,因为我可能想挑选其中的单个文件。

然后就可以随便加了

!ignored_folder/foo/exception_file.txt

编辑:但 tttt 我会从 开始并忽略或压制任何警告。