Как в Git игнорировать директории, но не файлы (.gitignore)?

Есть в репозитории файлы и директории, начинающиеся с точки. Как указать правила в .gitignore, чтобы игнорировались все директории, начинающиеся с точки, но не игнорировались файлы, начинающиеся с точки? Заранее расчитать, какие директории и файлы будут в проекте, не известно. Их может быть очень много, поэтому вручную каждую игнорируемую директорию указывать крайне неудобно.
Пример файлов в репозитории:
.a - dir
.b - dir
.c - file
.d - file

В данном примере правило должно игнорировать только ".a" и ".b".
  • Вопрос задан
  • 2593 просмотра
Решения вопроса 3
froex
@froex Автор вопроса
Извините за ответ самому себе в короткое время после публикации вопроса, но уже решил задачу.
Правило записал так: .*/*
Это работает, т.к. Git не отслеживает директории, поэтому игнорируем всё внутри директорий, начинающихся с точки, а сами эти директории указывать не требуется.
Ответ написан
Комментировать
@wing_pin
Люблю сгущенку и функциональное программирование
Правило будет выглядеть вот так:
/.*/*
Ответ написан
Комментировать
@Power
Извините, что вмешиваюсь в уже решённый вопрос, но более правильно будет так:
.*/
Из документации:
If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find a match with a directory. In other words, foo/ will match a directory foo and paths underneath it, but will not match a regular file or a symbolic link foo (this is consistent with the way how pathspec works in general in Git).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы