Чем отличаются эти шаблоны вложенных папок gitignore exclude-from-ignore? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть файл gitignore, который исключает исходный каталог, за исключением некоторых конкретных файлов:

/src_app
!/src_app/Learning\ Module\-darwin\-x64/

!/src_app/assets/icons/mac/

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

Странно то, что все файлы в каталоге модуля обученияраспознаются, тогда как никакие файлы в каталоге значков не выбираются.

В чем разница между этими двумя шаблонами, которая позволяет git распознавать один подпуть, а не другой?

1 Ответ

0 голосов
/ 04 декабря 2018

Ключ в том, что src_app/assets означает вообще не читается , поэтому src_app/assets/icons равно и не найдено .Не найденный, его нельзя игнорировать, чтобы его можно было сканировать, чтобы найти /src_app/assets/icons/mac, чтобы this можно было игнорировать.

Исправление состоит в том, чтобы сначала игнорироватьsrc_app/assets, затем также игнорируйте src_app/assets/icons:

!src_app/assets/
!src_app/assets/icons/

Первый из них заставляет Git заглянуть внутрь src_app/assets (чтобы он нашел icons), а второй заставляет Git заглянуть внутрьsrc_app/assets/icons как только найдет это.Действующие правила для src_app/assets/icons/mac вступят в силу.

(Если в src_app/assets/ и / или src_app/assets/icons/ есть файлы, которые не следует автоматически добавлять и не следует жаловаться на то, что они не отслежены, выпридется перечислить их как игнорируемые.)


Примечание: в /src_app/Learning\ Module\-darwin\-x64/ обратные косые черты перед дефисами не нужны (но безвредны).Ни одно из них не является регулярными выражениями ;все они узоры шара .

...