.gitignore игнорирует все файлы, затем рекурсивно разрешает файлы определенного типа - PullRequest
4 голосов
/ 04 мая 2011

У меня есть папка, которая является просто папкой шаблонов 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

I only хочу игнорировать /Test.cs и /Test.html, но включает все другие файлы,Я пробовал следующее:

/. Gitignore

# Ignore all
*

# But not these files...
!.gitignore
!*.tt

/ Static / .gitignore

!*.*
#also have just tried blank

Я не могу заставить git игнорировать правильные вещи... главная проблема - это "рекурсивное исключение", которое я хочу для Static / . .

Ответы [ 2 ]

12 голосов
/ 04 мая 2011

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

, например

/*

!.gitignore
!*.tt
!/Static/
0 голосов
/ 04 мая 2011

Что-то вроде:

/*
!.gitignore
!*.tt
!/Static/

должно работать.

Посмотрите на мой ответ ниже, чтобы сделать его более сложным, когда вы хотите unignore подкаталог в какой-то другой папке, когда выигнорируя все остальное.

Не могу понять, как gitignore игнорирует папки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...