Расширенные регулярные выражения (ERE) для .gitignore

Есть ли способ использовать расширенные регулярные выражения (ERE) в файле .gitignore? Например, я хочу использовать символ повторения + в файле .gitignore. Есть ли способ сделать это?


person Jacob Krieg    schedule 28.03.2013    source источник


Ответы (2)


Как показано здесь и подробно описано в "этот вопрос ", функция fnmatch () является задействованы для интерпретации шаблонов глобусов, что означает, что регулярные выражения не поддерживаются.

Вот что упоминается на gitignore странице руководства:

В противном случае git treats the pattern as a shell glob suitable for consumption by fnmatch(3) с флагом FNM_PATHNAME: подстановочные знаки в шаблоне не будут соответствовать / в имени пути.
Например, «Documentation/*.html» соответствует «Documentation/git.html», но не «Documentation/ppc/ppc.html» или «tools/perf/Documentation/perf.html».

Вы можете увидеть некоторое соответствие между шаблонами глобусов и регулярными выражениями в эти вопросы.

person VonC    schedule 28.03.2013

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

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

person vonbrand    schedule 28.03.2013
comment
Какая жалость. Такая удобная функция могла бы быть. - person Artur Barseghyan; 17.04.2014
comment
@ArturBarseghyan, рассмотрите Mercurial, у него есть эта изящная функция, а также много других интересных функций. - person toriningen; 04.04.2015
comment
@modchan: Я знаю, что он существует в Mercurial, и часто использую его. В любом случае спасибо за комментарий. - person Artur Barseghyan; 07.04.2015
comment
Кто-нибудь пробовал отправить патч? Кто знает, может быть, git-хакеры тоже сочтут это полезным. - person Alexander; 03.01.2018