我有如下文件夹结构:
/foo/
/foo/test.txt
/foo/.gitkeep
/foo/bar/test.txt
/foo/bar/.gitkeep
/foo/bar/baz/test.txt
/foo/bar/baz/.gitkeep
现在我想要排除“foo”文件夹中的所有文件以及其子文件夹(包括子文件夹的子文件夹),但保留所有的“.gitkeep”文件(这样可以保持文件夹结构)。这也适用于超过3个级别的子文件夹。
以下是可行的.gitignore规则:
/foo/**
!/foo/**/
!/foo/**/.gitkeep
有人能解释一下为什么这个有效吗?有没有更简洁的方法?