Документация .gitignore
гласит:
Если в начале или в середине (или в обоих) шаблона есть разделитель, то шаблон относится к уровню каталога конкретногоСам файл .gitignore. В противном случае шаблон также может совпадать на любом уровне ниже уровня .gitignore.
Всякий раз, когда у вас есть косая черта (но игнорируется одна в конце), шаблон сопоставляется только начиная с каталога, в котором находится .gitignore
, но не в нижних каталогах.
В вашем случае каталог a/doc/frotz
не начинается с шаблона doc/frotz
, поэтому он не совпадает. Ваш второй шаблон, frotz
, не привязан таким образом, и поэтому совпадает.