Вы должны исключить (белый список) папок, затем BUILD/
content:
build/**
!build/**/
!build/**/BUILD/**
См. ".gitignore
исключить папку, но включить указанную c подпапку "
build/** ignores
файлов и папок, поэтому build/aFolder/
игнорируется !build/**/BUILD/**
пытается найти файл в build/aFolder/BUILD/
Но: « Невозможно повторно включить файл, если исключен родительский каталог этого файла. »
И: build/aFolder/
- это уже игнорируемая папка.
Следовательно: !build/**/BUILD/**
не применяется.
Если : вы игнорируете папки сначала: !build/**/
(конечный /
важен):
build/aFolder/
больше не игнорируется, хотя build/aFolder/<files>
все еще игнорируется build/**
.
Тогда : !build/**/BUILD/**
может применяться к папке BUILD/
содержимое (его файлы), поскольку папки !build/aFolder/
и !build/aFolder/BUILD/
не игнорируются.
Проверьте, если это затем работает с:
git check-ignore -v -- build/aFile
git check-ignore -v -- build/path/to/BUILD/aFile
Первая команда должна вернуть .gitignore
строку правила.
Вторая команда не должна ничего возвращать, так как файл не должен игнорироваться.