18

.gitignore在 Windows 上遇到了一个奇怪的问题。

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

所以我有:

.gitignore

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

不幸的是,这不起作用。

同时,这样做:

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

所以我想知道,我是在搞砸什么,还是这是某种错误?

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

提前感谢您的任何输入:)

4

3 回答 3

20

git 1.8.2 (March, 8th 2013) 开始**现在支持:

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

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

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

!/Dependencies/**/*.exe
于 2013-04-23T09:17:56.557 回答
2

.gitignore 文档说:

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

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

于 2010-02-24T23:42:16.690 回答
2

您可以将.gitignore文件添加到文件Dependencies夹中

*。可执行程序

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

于 2010-04-30T12:43:33.497 回答