Я видел похожие вопросы (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
и отслеживает другие файлы.