忽略特定目录中的所有内容,但排除被忽略目录中的某些文件

时间:2019-05-05 14:25:52

标签: git gitignore

在我的git repo中,我有几个目录。我完全忽略了许多目录中的一个。但是我想排除(白名单)嵌套在该目录中的单个文件。像这样

!*/Databases/
!Databases/Links_Databases.txt
!Databases/AFLW/README.txt

此处第二行有效,但第三行不起作用。嵌套的README.txt文件仍然被忽略。如何将该文件列入白名单?

我在这里找不到几个答案:Onetwothree。但是,此处提供的解决方案会忽略根目录中的所有内容。我必须手动将其他要包括的目录列入白名单。因此,它没有达到我的目的。

最好,我只想编辑我的主要gitignore文件。如果没有其他方法,则可以在子目录中创建另一个gitignore。

1 个答案:

答案 0 :(得分:2)

您必须'unignore'文件所在的目录:

# Ignore all contents of Databases directory
Databases/*
# Except this direct child file
!Databases/Links_Databases.txt
# And the relevant subdir
!Databases/AFLW/
# Ignore all contents in subdir
Databases/AFLW/*
# Except this file we want to keep
!Databases/AFLW/README.txt

尽管并非严格意义上的重复,但这里的答案中有一个非常相似的问题,并有很好的解释:.gitignore exclude folder but include specific subfolder