Можно ли включить другой файл .gitignore в файл .gitignore? (например, #include в c-подобных языках)

У меня есть такие файлы, как vim.gitignore, SVN.gitignore и CVS.gitignore (распространяется на моем жестком диске).

Можно ли просто включить эти файлы gitignore в файл .gitignore в новый проект Git?

Изменить. У меня уже есть глобальный файл игнорирования. Я просто хочу игнорировать разные файлы в разных типах проектов, возможно ли это?

Ответы

Ответ 1

Вы можете:

  • Имейте шаблон репо с:
    • те файлы xxx.gitignore в нем:
    • a .gitignore файл с "xxx-gitignore-xxx" в нем (другими словами, с содержимым, которое вы можете легко идентифицировать
    • a .gitattribute фильтр.

(для каждого нового репо вы клонируете его и можете начинать с тех файлов, которые уже есть.
Затем вы удаляете удаленное "происхождение" или заменяете его любым удаленным репо, на которое хотите нажать)

enter image description here

При любой проверке вашего репо драйвер фильтра будет через smudge script:

  • распознать содержимое файла .gitignore
  • проверьте, нет ли содержимого xxx.gitignore (ищет определенную строку, которая имеет только эти файлы)
  • Если их содержимое отсутствует, оно добавит содержимое этих xxx.gitignore файлов
  • Если содержимое уже обновлено, оно не изменит .gitignore.

Обратите внимание, что наличие идентифицируемого содержимого здесь ключевое, поскольку фильтр-драйвер script не имеет имени/пути файла, который он фильтрует.

Это немного запутанно, но, по-видимому, это единственный способ реализовать функцию "включить", которую вы хотите.

Ответ 2

Закрытие, которое вы получите, - это глобальный файл игнорирования:

git config --global core.excludesfile ~/.gitignore

который, как правило, имеет .gitignore в репо, но применим ко всем репозиториям вашей системы (и не распространяется на внешние клоны.)

Ответ 3

Я запускаю проект, который содержит наибольшее количество шаблонов gitignore и чрезвычайно прост в использовании.

Это не позволяет никому включать под-шаблоны, но генерирует один большой шаблон из отдельных шаблонов git.