Простой способ применить файл .gitignore ко всем подпапкам, содержащим отдельные проекты в репозитории. - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть Git репозиторий, содержащий множество подпапок, каждая из которых является проектом IntelliJ IDEA.

Я обнаружил JetBrains .gitignore, который игнорирует файлы в проекте IntelliJ IDEA, и я хочу применить его ко всем таким проектам в этих подпапках.

Конечно, я могу сделать копию для каждого проекта или оставить ее в папке root и отредактировать шаблоны в файле .gitignore, чтобы они соответствовали файлам в подпапках.

Однако мне интересно, есть ли более простой способ сделать это, чем делать копии или редактировать длинный .gitignore файл.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Чтобы игнорировать тот же набор файлов, поместите этот файл .gitignore в root вашего репозитория Git и добавьте префикс ко всем строкам, которые применяются ко всем подкаталогам с подстановочным знаком /*/. Один и тот же набор файлов будет игнорироваться во всех подкаталогах, при этом нет необходимости обновлять .gitignore при добавлении или удалении подкаталога.

Если в начале или в середине находится разделитель (или оба) шаблона, то шаблон относится к уровню каталога самого конкретного файла .gitignore.

Итак, если у вас следующая структура каталогов:

my_repo/
  .gitignore
  project1/
    foo.txt
    bar.txt
  project2/
    foo.txt
    bar.txt

И вы хотите игнорировать bar.txt во всех каталогах проекта, тогда ваш .gitignore будет:

/*/bar.txt
0 голосов
/ 16 апреля 2020

Почему бы не написать скрипт, который сделает это за вас?

Bash

# Something like:

for i in $DIRECTORY/.gitignore; do
   cat "<my desired gitignore additional context>" >> .gitignore
done

...