忽略特定文件夹(和所有子文件夹)中的文件类型?

时间:2013-03-01 05:15:49

标签: git

我正在尝试配置.gitignore文件,以便忽略具有特定扩展名的所有文件,外,它们出现在特定文件夹中,或该文件夹的任何子文件夹中。我尝试过以下哪些不起作用:

*.lib
!Libraries/

我的第二个问题是,否定排除仅适用于前一个规则,或者是否已经定义了到目前为止的每个规则? -

This几乎回答了我的问题,但对子文件夹没有帮助。

2 个答案:

答案 0 :(得分:6)

我认为你的意思是忽略所有*.lib,除非他们在/Libraries内,试试这个:

# The root directory's .gitignore
*.lib
!/Libraries/*.lib

# The .gitignore under /Libraries directory
!*.lib

.gitignore从上到下进行解析。任何规则都可以覆盖先前的规则。

答案 1 :(得分:4)

尝试使用双星号**。您.gitignore中的此类内容可能有效:

*.lib
!/Libraries/**/*.lib

双星号匹配子目录的任何组合。 This answer解释了它的运作方式。

至于你的第二个问题,@ Tuxdude是正确的:由于解析.gitignore的方式,规则将覆盖到那时为止的其他规则。