Я встречал похожие вопросы ( 1 , 2 и 3 ), но не получил от них правильного решения.
Мне нужно игнорировать все файлы в определенной папке, за исключением файла определенного типа. Папка - это подкаталог для корневого пути. Позвольте мне назвать папку Resources
. Поскольку я не хочу усложнять ситуацию, позвольте мне игнорировать файлы во всех папках с указанием, Resources
где бы они ни находились.
Это наиболее распространенное решение (во всех повторяющихся вопросах)
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
Проблема с этим решением заключается в том, что оно перестает отслеживать вновь добавленные файлы (поскольку *
игнорирует все файлы). Я не хочу продолжать исключать все типы файлов. Я хочу нормального поведения, при котором, если добавляется новый файл, git status
отображается.
Я , наконец , получил решение здесь . Решение - добавить .gitignore
в Resources
папку еще один файл . Это работает правильно.
Могу ли я добиться того же с помощью одного файла игнорирования? Я считаю, что наличие большого количества игнорируемых файлов в разных каталогах немного неудобно.
Вот чего я пытаюсь достичь:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our type
!*.foo
Но это дает противоположный результат. Он игнорирует *.foo
типы и отслеживает другие файлы.
DirectoryName1/** DirectoryName1/**/*
для каждого из них. Сначала удаляются каталоги, но вам нужен второй, чтобы удалить все типы файлов.