我在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
文件夹
*。可执行程序
内。 显而易见的缺点是忽略规范现在分散在几个文件中。