Git не игнорирует каталоги с буквенно-цифровыми скороговорками - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь игнорировать некоторые каталоги, которые выводятся в виде журналов заданий.

ls -l
drwxr-xr-x  4 user  CHARLES\Domain Users  128 Sep 12 21:36 337c6c86-d49b-43cf-89ac-35c110ec6412

cat .gitignore
^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+/$
^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$

Но git отказывается игнорировать его.

Есть ли в git ignore некоторые специальные правила для регулярных выраженийшаблоны?

Спасибо!


РЕДАКТИРОВАТЬ

Спасибо, Тим, за то, что предложили уточнить:

То, что показано выше, является минимумомВоспроизводимый пример, где Git-репо имеет один подкаталог с именем 337c6c86-d49b-43cf-89ac-35c110ec6412.Затем содержимое файла .gitignore показывается с cat.

1 Ответ

0 голосов
/ 13 сентября 2018

.gitignore подчиняется только glob выражениям; у него нет синтаксиса регулярных выражений.

В глобальном формате вы можете выбрать:

  • [: символы из набора: совпадают ровно с одним таким символом
  • ?: соответствует любому символу (но всегда точно одному, например . в регулярном выражении)
  • *: совпадение с нулем или более символов

Они применяются для каждого компонента. Привязка (^ и $) всегда подразумевается: a?c соответствует именам aac и abc, но никогда abcd или dabc.

(правила Git немного усложняются, если вы включаете косые черты, например, ** может соответствовать любому количеству подкомпонентов; но давайте пока просто избегать этого.)

Пока ваши имена имеют фиксированную длину и шестнадцатеричные символы (в наборе [0-9a-f]), вы можете использовать:

[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]

(который я получил, кормя в вашем примере и используя

s/[0-9a-f]/[0-9a-f]/g

как команда редактора, например, в sed или vi).

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