如何recursion地.gitignore文件

我试图避免在我的.gitignore文件中的以下模式。

 MyPrject/WebApp/Scripts/special/*.js MyPrject/WebApp/Scripts/special/*/*.js MyPrject/WebApp/Scripts/special/*/*/*.js MyPrject/WebApp/Scripts/special/*/*/*/*.js MyPrject/WebApp/Scripts/special/*/*/*/*/*.js MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js 

我们尝试了:

 MyPrject/WebApp/Scripts/special/**.js MyPrject/WebApp/Scripts/special/**/*.js 

但是这并没有奏效。 这是Windows上的git。 有没有更简洁的方法来做到这一点,而不重复的事情?

从git 1.8.2开始,这个:

 MyPrject/WebApp/Scripts/special/**/*.js 

应该按照这个答案工作 。 它也适用于我在Windows 7中使用Sourcetree 1.6.12.0和它安装的git版本(1.8.4-preview20130916)。

以recursion方式对目录下的每个文件和文件夹进行gitignore:

 MyPrject/WebApp/Scripts/special/** 

关注gitignore手册页面:

git把这个​​模式当作一个适合fnmatch(3)用FNM_PATHNAME标志消费的shell glob:模式中的通配符不会和path名中的/匹配。

所以,这清楚地表明,没有办法在两个string之间指定一定数量的目录 ,例如在specialjs之间。

尽pipe如此,你可以在每个目录下有一个.gitignore文件,所以在你的情况下可能有以下内容

 *.js 

在下面的地方

 MyPrject/WebApp/Scripts/special/.gitignore 

就足够了?