5

我正在尝试配置一个.gitignore文件,以便忽略具有特定扩展名的所有文件,除非它们出现在特定文件夹或该文件夹的任何子文件夹中。我尝试了以下不起作用的方法:

*.lib
!Libraries/

我的第二个问题是,否定排除仅适用于前一条规则,还是您定义的每条规则都适用?

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

4

2 回答 2

6

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

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

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

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

于 2013-03-01T05:18:20.113 回答
4

尝试使用双星号,**. 您可能会遇到这样的.gitignore事情:

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

双星号匹配子目录的任意组合。这个答案解释了它如何很好地工作。

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

于 2013-03-01T05:42:12.380 回答