Я знаю, что это старый пост, но у меня все еще была эта проблема, и, используя MsysGit 1.8.0, я не смог использовать принятый ответ @ manojlds.
Похоже, единственными шаблонами, которые исключают все папки bin на любой глубине, являются [Bb]in
и [Bb]in/
. Согласно справочной странице gitignore , наиболее правильной является та, которая содержит косую черту, поскольку она будет соответствовать только каталогам, а не файлам с именем "bin". Как только я пытаюсь добавить дополнительные уровни к шаблону, такие как [Bb]in/*
, он перестает совпадать на любой глубине и становится относительно местоположения файла .gitignore, как показано на странице man.
Теперь, предположив, что у меня есть запись [Bb]in/
в моем глобальном файле .gitignore, я нашел лучший способ игнорировать определенный шаблон файлов (например, файлы .refresh) в определенной папке bin - создать еще один .gitignore Подпишите один каталог над папкой bin (т. е. каталогом проекта) и поместите в нее следующие записи:
![Bb]in/
[Bb]in/*
![Bb]in/*.refresh
Папки bin проекта нашего веб-сайта никогда не содержат вложенных папок, таких как Debug или Release, но я протестировал, и при желании все равно игнорируются подпапки в папке bin.
Если я использую только вторую и третью записи, как показалось в принятом ответе, это не сработает. Интуитивно понятное объяснение состоит в том, что первая запись удаляет эту конкретную папку bin из глобального глобуса, поэтому ее содержимое будет включено, затем вторая запись работает как нужно, поскольку в этом случае она относится к файлу .gitignore, а третья запись удаляет желаемые узоры из шара, созданного второй записью.