Git 1.9否定模式中的双星号不起作用?

Git 1.9否定模式中的双星号不起作用?,git,gitignore,Git,Gitignore,我们的文件夹结构如下所示: x ├─y │ ├─a │ │ ├─config.xml │ │ ├─a.file │ │ └─another.file │ ├─b │ │ ├─config.xml │ │ ├─a.file │ │ └─another.file │ └─config.xml ├─z │ └─(...) └─config.xml 我想将所有config.xml添加到Git存储库中 我正试图通过以下内容来实现这一点。gitignore位于repository的顶层 * !**/con

我们的文件夹结构如下所示:

x
├─y
│ ├─a
│ │ ├─config.xml
│ │ ├─a.file
│ │ └─another.file
│ ├─b
│ │ ├─config.xml
│ │ ├─a.file
│ │ └─another.file
│ └─config.xml
├─z
│ └─(...)
└─config.xml
我想将所有config.xml添加到Git存储库中

我正试图通过以下内容来实现这一点。gitignore位于repository的顶层

*
!**/config.xml
git状态列出的唯一文件是x/config.xml。其他的都被忽略了。我们使用的是Git1.9.0-rc3。有什么建议吗

*
!**/
!**/config.xml

这是最小答案长度填充。

这是因为git不会检查被忽略的文件夹,不是吗?当我将.gitignore更改为您的版本时,git status仅将文件夹y和z显示为未跟踪的文件。@BlackEye它根本不关心文件夹,但关心完整的文件路径及其通配符。使用
git status-u
查看完整的列表,而不仅仅是文件夹。实际上,此解决方案是必要的,因为“如果[或]该文件的父目录被排除,则无法重新包含该文件”()。由于性能原因,Git不会检查被忽略的文件夹以重新包含文件。