我正在尝试配置.gitignore
文件,使得所有具有特定扩展名的文件被忽略,除非它们出现在特定文件夹内或该文件夹的任何子文件夹中。我已经尝试了以下代码,但它并没有起作用:
*.lib
!Libraries/
我有一个第二个问题,否定的排除只适用于紧随其后的规则,还是适用于到目前为止定义的每个规则?- 这篇文章几乎回答了我的问题,但对于子文件夹没有帮助。
我认为你的意思是忽略所有的*.lib
,除非它们在/Libraries
文件夹内。请尝试以下代码:
# The root directory's .gitignore
*.lib
!/Libraries/*.lib
# The .gitignore under /Libraries directory
!*.lib
< p > .gitignore
文件从上到下解析。任何规则都可以覆盖先前的规则。
尝试使用双星号,**
。在你的.gitignore
文件中添加以下内容:
*.lib
!/Libraries/**/*.lib
.gitignore
的方式,规则将覆盖其他规则直到该点为止。
/Libraries
直接下面的.lib
文件,而不能跟踪任何/Libraries
子目录下的文件。 - Tuxdude**
匹配任意数量的目录,包括零个,因此第二行是多余的,并且**
解析是在git 1.8.2中添加的,这是在2013年初。测试表明这对我有效? - Simon Buchan