文件夹名称未知时.gitignore排除

时间:2013-03-22 00:16:59

标签: git gitignore

这是我的文件夹结构(以find * Unix格式)

Project
Project/hi.txt
Project/userdata
Project/userdata/username
Project/userdata/username/info.txt
Project/userdata/username/cool
Project/userdata/username/cool/foo.txt
Project/userdata/username/cool/bar.txt

如何使用.gitignore排除userdata文件夹之外的cool文件夹中的所有内容?此解决方案应该不依赖 username实际上是什么。

1 个答案:

答案 0 :(得分:3)

.gitignore也支持包含,而不仅仅是排除。包含会否定排除。需要注意的是,如果您排除文件夹,它甚至都不会根据文件夹的内容测试包含内容。所以你要设置你的.gitignore看起来像(我假设它已经在Project/里面了)

/userdata/*
!/userdata/*/
/userdata/*/*
!/userdata/*/cool/

这说“忽略/userdata中的所有内容,但不要忽略文件夹,但要忽略嵌套文件夹中的所有内容,但不要忽略名为cool的双重嵌套文件夹”。