Reputation: 7267
In my git repo, I have several directories. I'm ignoring One among many directories completely. But I want to exclude (whitelist) a single file which is nested in that directory. Something like this
!*/Databases/
!Databases/Links_Databases.txt
!Databases/AFLW/README.txt
Here the second line works, but the third line doesn't work. Nested README.txt file is still ignored. How can I whitelist that file?
I found few answers here: One, two and three. But the solutions provided here ignores everything in the root directory. I'll have to manually whitelist other directories I want to include. So, it didn't serve my purpose.
Preferably, I would like to edit my main gitignore file only. If there is no other way, I'm okay with creating another gitignore in a subdirectory.
Upvotes: 2
Views: 581
Reputation: 44615
You have to 'unignore' the directory under which the file resides:
# 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
Although it's not strictly a duplicate, there is a very similar question with good explanations in the answers here: .gitignore exclude folder but include specific subfolder
Upvotes: 2