gitignore распространяет исключения на более низкие уровни в каталогах - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть in gitignore

*
!.*

, и я ожидаю, что я вижу все подкаталоги .*, но на самом деле git видит только те, где подкаталог начинается снова с ..Например, я вижу .java/.userPrerfs/.user.lock.., потому что оба подкаталога начинаются с ., но я не вижу .conf/ario или .java/fonts/.

Как можно ограничить исключение * только для примененияна верхний уровень?

Ответы [ 3 ]

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

!.*, поскольку вы не указали каталог map, он не работает для вас.

. обозначает текущий каталог, поэтому вы игнорируете только файлы в указанном каталоге.

используйте это:

*
!**/.*
0 голосов
/ 09 декабря 2018

Я провел дальнейший эксперимент и обнаружил, для более сложной необходимости, что

/*
!/.*
/.*/*
!/.config/*
/.config/*/*
!/.config/*/*.conf

помогает мне найти файлы .conf в каталоге .config.

Подход, который я нашел, состоял в том, чтобы написать строку за строкой и для каждой строки проверить, что включено, а что нет.Кажется, что / может использоваться для текущего каталога (или для ~).Возможно, есть объяснение.

Я оценил два предложения, которые помогли мне понять обработку .gitignore.

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

Вы хотите включить путь на том же уровне, что и ваш .gitignore файл

!./.*
...