git ignore file все еще фиксирует логи - PullRequest
4 голосов
/ 17 марта 2012

Я прочитал все виды постов по этому поводу, и я просто не могу заставить его работать.

в моем файле .ignore у меня есть

*/[Ll]ogs/*

Несмотря на то, что я попробовал еще около десятка других вариантов, все, кроме явного присвоения имени файлу, я все еще сохраняю эти файлы

новый файл: src / methodfitness.web / Logs / Trace.log.2012-03-15

У меня также была похожая проблема, помогавшая коллеге исключить его файл web.config, но теперь это его проблема, я просто не хочу этих кровавых файлов журнала.

спасибо,

R

Ответы [ 5 ]

9 голосов
/ 17 марта 2012

Шаблон */[Ll]ogs/* будет соответствовать только папке журналов, зависящей от одного уровня. У тебя 3 уровня. Вы также сказали «.ignore file», надеюсь, вы имели в виду «.gitignore». В любом случае, это можно исправить одним из четырех способов:

  1. Изменить шаблон на src/*/[Ll]ogs/*

  2. Поместите шаблон */[Ll]ogs/* в src/.gitignore вместо своего корня .gitignore

  3. Измените шаблон на [Ll]ogs/. Это будет игнорировать любой каталог под названием «Журналы» или «журналы» во всем вашем дереве. Это может не подходить, если вы хотите игнорировать каталог с этим именем в папках вашего домена.

  4. Поместите шаблон * в src/methodfitness.web/Logs/.gitignore. Это будет игнорировать все файлы в этой папке. Преимущество этого подхода заключается в том, что git по-прежнему будет создавать папку Logs при оформлении заказа, что может или не может быть тем, что вы хотите. Если вы сделаете это, убедитесь, что явно добавили файл .gitignore, иначе он проигнорирует сам себя.


В связанной ноте завершающий * не нужен. Вы можете указать каталоги с помощью своего шаблона игнорирования, и он пропустит весь каталог. Единственный раз, когда вам нужен завершающий *, это когда вы должны иметь возможность игнорировать определенные файлы (используя синтаксис префикса !, например, !*/[Ll]ogs/goodfile.txt)

1 голос
/ 17 марта 2012

Чтобы игнорировать все каталоги журналов (и содержимое тоже) на любой глубоко внутри вашей рабочей копии, вам просто нужно прочитать gitignore man mage и принять пример игнорирования foo dirman-page.

Для .gitignore в корневом шаблоне

logs/

добейтесь цели

1 голос
/ 17 марта 2012

Почему вы используете такой странный метод?

Чтобы игнорировать все файлы в папке src/methodfitness.web/Logs/, попробуйте добавить в свой файл .gitignore соответствующую строку: src/methodfitness.web/Logs/

1 голос
/ 17 марта 2012

Вы можете просто использовать [Ll]ogs/ в качестве шаблона игнорирования.

Помещение этого шаблона в файл .gitignore в корне структуры каталогов должно игнорировать все каталоги, называемые Logs или logs в любом месте дерева каталогов.

0 голосов
/ 10 августа 2018

Вы также можете использовать двойные звездочки, как описано в документации к git-scm (версия git 2.16)

например

**/[Ll]ogs

Двапоследовательные звездочки ("**") в шаблонах, сопоставленных с полным путем, могут иметь специальное значение:

  • Начальный "**", за которым следует косая черта, означает совпадение во всех каталогах.Например, «** / foo» соответствует файлу или каталогу «foo» в любом месте, так же, как шаблон «foo».«** / foo / bar» соответствует файлу или каталогу «bar» в любом месте, которое находится непосредственно в каталоге «foo».

  • Трейлинг «/ **» соответствует всему, что находится внутри.Например, «abc / **» сопоставляет все файлы в каталоге «abc» относительно расположения файла .gitignore с бесконечной глубиной.

  • Косая черта, за которой следуют два последовательныхзвездочки затем косая черта соответствует нулю или более каталогов.Например, «a / ** / b» соответствует «a / b», «a / x / b», «a / x / y / b» и т. Д.

Другие последовательные звездочки считаются недействительными.

...