.gitignore игнорирует другие каталоги с тем же именем

У меня проблема в моем .gitignore. Я хочу, чтобы он просто игнорировал каталог "vendor/", но игнорировал все каталоги с этим именем.

Ниже приведен мой .gitignore:

.idea/ 
bin/ 
vendor/ 
composer.lock 
composer.phar 

Ниже приведен результат моего статуса git:

Changes not staged for commit: 
   (use "git add <file> ..." to update what will be submitted) 
   (use "git checkout - <file> ..." to discard changes in working directory) 

modified: .gitignore 

Not monitored files: 
   (use "git add <file> ..." to include what will be submitted) 

src/vendor/ 
tests/src/ 
vendor/ 

Он также игнорирует "src/vendor", я не хочу, чтобы это произошло, я хочу, чтобы он игнорировал "vendor/"

Ответы

Ответ 1

Из документа для Git Игнорировать

Ведущая косая черта соответствует началу пути. Например, /*.c соответствует cat-file.c, но не mozilla-sha1/sha1.c.

Попробуйте изменить vendor/ на /vendor/

Ответ 2

От Git - документация gitignore:

"Если шаблон заканчивается косой чертой, он удаляется с целью следующего описания, но он будет находить совпадение с каталогом. Другими словами, foo/будет соответствовать директории foo и paths под ней, но не будет соответствовать регулярному файлу или символической ссылке foo (это согласуется с тем, как метод pathspec работает вообще в Git)."

"Если шаблон не содержит косой черты /, Git рассматривает его как шаблон оболочки оболочки и проверяет соответствие имени пути относительно местоположения файла .gitignore (относительно верхнего уровня работы дерево, если не из файла .gitignore).

Просто удалите /

.idea 
bin 
vendor 
composer.lock 
composer.phar