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

时间:2015-09-02 11:28:00

标签: git gitignore

此问题已更改,因为错误说明错误!感谢@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 */**/**

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

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

1 个答案:

答案 0 :(得分:0)

  

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

请注意,在Git 2.17(2018年第二季度,两年半之后)之前,当一个是文件而另一个是已经修复的目录时,多个路径的“git check-ignore”会混淆。< / p>

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

  

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

     

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

     

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

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