忽略子目录中除特定文件类型之外的所有文件

时间:2017-04-24 00:14:13

标签: git gitignore

如何忽略特定子目录中的所有文件和目录,除了那些包含.md文件的文件和目录?

我的目录设置类似于

{other directories and files that should not be effected}
media\
    images\
        {other files}
        readme.md
    audio\
        {other files}
        readme.md
    video\
        {other files}
        readme.md
    {other files}
    readme.md

请注意,嵌套目录可能具有任意深度,因此不能选择每个子目录的静态排除/包含。

我尝试过的事情:

media/*
!media/*.md

使用的搜索字词:.gitignore忽略除markdown之外的子目录中的所有文件

建议的重复问题专门用于排除除特定子文件夹内容之外的所有内容。那不是我想要的。我想忽略除子文件夹及其嵌套目录中的.md文件之外的所有文件

2 个答案:

答案 0 :(得分:0)

gitignore无法忽略已经跟踪过的文件。

尝试清除跟踪文件缓存:

git rm --cached -r

答案 1 :(得分:0)

我设法解决了这个问题:

# Ignore all files and directories(recursively)
media/**

# Exclude .md files
!media/**/*.md