Как игнорировать определенный тип файла в определенном каталоге и его подкаталоге в Git?

Как я могу игнорировать определенный тип файла только в одном каталоге и его подкаталоге?

Чтобы объяснить, что я имею в виду, выполните следующие настройки

  • anotherdir/
    • seeme1.iml
  • foldertoignore/
    • ignoreme1.iml
    • seeme3.txt
    • anotherignorefolder/
      • ignoreme2.iml
      • seeme4.txt
  • seeme5.iml

Я хочу иметь возможность сказать, git (используя .gitignore файл) игнорировать *.iml, но только в каталоге foldtertoignore.

Я думал, что это сработает

foldertoignore/*.iml

Но это только обнаружено ignoreme1.iml не ignoreme2.iml

Я знаю, как сказать ему игнорировать *.iml, за исключением определенного каталога. Это наоборот. Любые мысли?

Ответ 1

.gitignore правила применяются рекурсивно из содержащего каталога. Просто создайте файл foldertoignore/.gitignore с *.iml как содержимое.

>>foldertoignore/.gitignore echo '*.iml'
git add foldertoignore/.gitignore
git commit -m 'Ignore .iml files in foldertoignore and its subfolders'

Ответ 2

Вы можете попробовать следующее:

/foldertoignore/**/*.iml

Он может работать или не работать в зависимости от реализации fnmatch в вашей ОС. Я полагаю. Альтернатива:

*.iml
!/anotherdir/*.iml
!/*.iml