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

时间:2010-02-24 23:24:34

标签: windows git msysgit gitignore

我在Windows上遇到.gitignore的奇怪问题。

我希望git忽略所有.exe个文件,但Dependencies文件夹(以及所有子文件夹)中的文件除外。

所以我有:

.gitignore

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

遗憾的是,这不起作用。

同时,这样做:

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

所以我想知道,我搞砸了什么,或者这是一种什么样的错误?

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

提前感谢任何输入:)

3 个答案:

答案 0 :(得分:18)

git 1.8.2 (March, 8th 2013)以来,现在支持**

  

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

     

E.g。 “foo/**/bar”与“bar”本身或“foo”的子目录中的“foo”匹配。

在您的情况下,这意味着现在可能支持此行:

!/Dependencies/**/*.exe

答案 1 :(得分:2)

.gitignore documentation说:

  

git将模式视为适合fnmatch(3)使用FNM_PATHNAME标志消耗的shell glob

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

答案 2 :(得分:2)

您可以使用

.gitignore文件添加到Dependencies文件夹
*。exe文件

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