/a/b/c/* !foo
Похоже, у меня работает (git 1.7.0.4 в Linux). *
важен, поскольку в противном случае вы игнорируете сам каталог (так что git не будет заглядывать внутрь) вместо файлов в каталоге (что позволяет исключить).
Думайте об исключениях как о высказывании «но не этот», а не «но включить это» - »игнорировать этот каталог ( / a / b / c /
), но не этот ( foo
) "не имеет особого смысла; "игнорировать все файлы в этом каталоге ( / a / b / c / *
), но не этот ( foo
]" ». Процитируем страницу руководства:
Необязательный префикс! который сводит на нет узор; любой соответствующий файл, исключенный предыдущим шаблоном, снова будет включен.
то есть файл должен быть уже исключен, чтобы быть включенным снова. Надеюсь, что это проливает свет.