Предлагаемое решение (!/**/Sync/**/*
) не будет работать в одиночку, потому что Невозможно повторно включить файл, если исключен родительский каталог этого файла.
Так что если у вас есть .gitignore
с:
*
!.gitignore
Вы должны сначала внести в белый список папки (!*/
), а затем исключить файлы (!**/Sync/**
, нетнужно для **/*
)
Конечный результат будет иметь вид .gitignore
:
*
!.gitignore
!*/
!**/Sync/**
Не забудьте проверить любой файл, к которому применимо правило .gitignore
:
git check-ignore -v -- aFile
Примечание: /
потребуется (для !**/Sync/**
), если вы хотите привязать белый список из top вашего хранилища.
Если нет, /
не требуется: это будет относительно того, где находится ваш .gitignore
).
С gitignore
справочная страница :
Если шаблон не содержит косую черту /
, Git обрабатывает его как шаблон оболочки и проверяет совпадение с путевым именем относительно расположения файла .gitignore
(относительно верхнего уровня работыдерево, если не из файла .gitignore
).