.gitignore игнорирует все файлы, а затем рекурсивно разрешает файлы определенного типа
У меня есть папка, которая является просто папкой шаблонов T4, но она выводит файлы, сгенерированные кодом, в другие каталоги. Поэтому я стараюсь игнорировать все, кроме файлов *.tt (т.е. *.cs, *.master, *.resx и т. Д.). Есть одна ошибка. У меня есть подпапка с именем static, которая содержит файлы, которые никогда не следует игнорировать.
/Test.tt
/Test.cs
/TestHtml.tt
/TestHtml.html
/Static
/Sub/Sub.cs
/Sub/Sub2/Sub2.cs
/Sub3/Sub4/Sub5/Sub5.html
Я только хочу игнорировать /Test.cs и /Test.html, но включить все остальные файлы. Я пробовал следующее:
/.gitignore
# Ignore all
*
# But not these files...
!.gitignore
!*.tt
/Static/.gitignore
!*.*
#also have just tried blank
Я не могу заставить git игнорировать правильные вещи... главная проблема - 'рекурсивное исключение', которое я хочу для Static /.,
2 ответа
Вы должны закрепить свой *
в противном случае он будет продолжать совпадать со всеми файлами даже в игнорируемых каталогах.
например
/*
!.gitignore
!*.tt
!/Static/
Что-то вроде:
/*
!.gitignore
!*.tt
!/Static/
должно сработать.
Посмотрите на мой ответ ниже, чтобы сделать его более сложным, когда вы хотите unignore
подкаталог в какой-то другой папке, когда вы игнорируете все остальное.