此问题已更改,因为错误描述错误!感谢@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 check-ignore */**
什么都不会出现,当我cd
进入hello
目录时,hello/__folder/text.txt
显示出来!
请注意,在Git 2.17(2018年第二季度,两年半之后)之前,当一个是文件而另一个是已经修复的目录时,具有多个路径的“git check-ignore
”会感到困惑。
见commit d60771e的René 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问题仍然存在,您将不得不再次检查。