git check-ignore * / **不列出文件夹

问题描述 投票:1回答:1

此问题已更改,因为错误描述错误!感谢@Tim和@Jubobs的帮助

我的.gitignore文件中有整个文件夹,但是当我使用时

git check-ignore */** 

当它们在文件夹结构中更深处时,它们不会显示出来。有没有解决的办法?

示例文件夹结构:

回购:

repo/.git
repo/.gitignore
repo/hello/__world/test.txt

在.gitignore:

**/__world/**

当我现在在根目录中调用git check-ignore */**什么都不会出现,当我cd进入hello目录时,hello/__folder/text.txt显示出来!

我打电话的时候

git check-ignore */**/**

我实际上可以看到该文件。

这是否有“无限”的递归? (所以我甚至可以在更深的文件夹中找到文件)

git gitignore
1个回答
0
投票

当我现在在根目录中调用git check-ignore */**什么都不会出现,当我cd进入hello目录时,hello/__folder/text.txt显示出来!

请注意,在Git 2.17(2018年第二季度,两年半之后)之前,当一个是文件而另一个是已经修复的目录时,具有多个路径的“git check-ignore”会感到困惑。

commit d60771eRené Scharfe (rscharfe)(2018年2月10日)。 (由Junio C Hamano -- gitster --合并于commit 796a788,2018年2月27日)。

check-ignore:修复目录和其他文件类型的混合

check_ignore()中,第一个pathspec项确定任何后续的dtype。 这意味着匹配常规文件的pathspec可以阻止跟踪路径规范匹配目录,这没有任何意义。

通过分别确定每个pathspec的dtype,通过每次将值DT_UNKNOWN传递给last_exclude_matching()来解决此问题。

因此,如果Git 2.17问题仍然存在,您将不得不再次检查。

© www.soinside.com 2019 - 2024. All rights reserved.