.gitignore不了解我的文件夹通配符在Windows上

我在Windows上遇到一个奇怪的问题与.gitignore

我想让git忽略所有的.exe文件,除了Dependencies文件夹(和所有子文件夹)中的文件。

所以我有:

.gitignore

 *.exe !/Dependencies/**/*.exe 

这不幸的是,不工作。

同时,这样做:

 *.exe !/Dependencies/folder/subfolder/*.exe 

所以我想知道,我在搞点什么,或者这是一种错误?

我在Windows(Windows 7 x64)版本1.6.5.1-preview20091022上运行msysgit

在此先感谢您的任何input:)

自git 1.8.2(2013年3月8日)以来,现在支持**

.gitignore.gitattributes文件中的模式可以具有**/ ,作为匹配0或更多级子目录的模式

例如“ foo/**/bar ”与“ foo ”本身或“ foo ”的子目录中的“ foo/**/bar ”相匹配。

就你而言,这意味着现在可以支持这一行:

 !/Dependencies/**/*.exe 

.gitignore文档说:

git将该模式视为适合fnmatch使用的shell glob(3),并带有FNM_PATHNAME标志

您的平台上的fnmatch可能不支持路径中的**。

您可以使用.gitignore文件添加到Dependencies文件夹

*。可执行程序

内。 显而易见的缺点是忽略规范现在分散在几个文件中。