Как отрицаемые шаблоны работают в .gitignore?

Я пытаюсь использовать .gitignore файл с отрицаемыми шаблонами (строки, запускающиеся с!), но это не прокладывает себе путь, я ожидаю.

Как минимальный пример, у меня есть следующая структура каталогов:

C:/gittest
 -- .gitignore
 -- aaa/
   -- bbb/
     -- file.txt
   -- ccc/
     -- otherfile.txt

и в моем gitignore файле, у меня есть это:

aaa/
!aaa/ccc/

Мое понимание (на основе этой страницы документа) - то, что файл, aaa/ccc/otherfile.txt не должен быть проигнорирован, но на самом деле мерзавец, игнорирует все под aaa.

Я неправильно понимающий это предложение: "Дополнительный префикс! который инвертирует шаблон; любой файл соответствия, исключенный предыдущим шаблоном, станет включенным снова".?

BTW, это находится в Windows с msysgit 1.7.0.2.

77
задан Vadim Kotov 16 June 2017 в 11:15
поделиться

1 ответ

Я думаю, что вы на самом деле хотите сделать следующее:

aaa/*
!aaa/ccc

Вы говорите "не заглядывайте в aaa ", так что это даже не исследует путь aaa / ccc . Если вы используете подстановочный знак, он по-прежнему считывает содержимое aaa , затем каждая запись соответствует подстановочному знаку и игнорируется, за исключением aaa / ccc , который возвращается обратно.

{ {1}}
136
ответ дан 24 November 2019 в 10:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: