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

发布于 2024-08-22 20:29:36 字数 489 浏览 11 评论 0原文

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

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

所以我有:

.gitignore

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

不幸的是,这不起作用。

与此同时,这确实是这样的:

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

所以我想知道,我是否搞砸了一些事情,或者这是某种错误?

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

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

I'm encountering a weird issue with .gitignore on Windows.

I want git to ignore all .exe files, except those in the Dependencies folder (and all subfolders).

So I have:

.gitignore:

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

This, unfortunately, does not work.

Meanwhile, this does:

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

So I'm wondering, am I messing something up, or is this some kind of bug?

I'm running msysgit on Windows (Windows 7 x64) version 1.6.5.1-preview20091022

Thanks in advance for any input :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小耗子 2024-08-29 20:29:36

git 1.8.2(3 月 8 日) 2013),现在支持 **

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

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

就您而言,这意味着现在可能支持此行:

!/Dependencies/**/*.exe

Since git 1.8.2 (March, 8th 2013), the ** is now supported:

The patterns in .gitignore and .gitattributes files can have **/, as a pattern that matches 0 or more levels of subdirectory.

E.g. "foo/**/bar" matches "bar" in "foo" itself or in a subdirectory of "foo".

In your case, that means this line might now be supported:

!/Dependencies/**/*.exe
幸福还没到 2024-08-29 20:29:36

您可以将 .gitignore 文件添加到 Dependencies 文件夹中,其中包含

*.exe

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

You could add a .gitignore file to the Dependencies folder with

*.exe

inside. The obvious downside is that ignore the specifications are scattered among several files now.

花伊自在美 2024-08-29 20:29:36

.gitignore 文档 说:

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

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

The .gitignore documentation says:

git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag

It's possible that fnmatch on your platform does not support ** in a path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文