Думал, что скину на это.Есть еще одна причина, по которой глобальный файл игнорирования, похоже, не работает.Я не думаю, что это было описано в предыдущих ответах.Это настолько ослепительно очевидно, что - конечно - очень легко пропустить.
Дело в том, что git будет игнорировать только новые файлы .Если файл уже отслеживается Git, то, конечно, Git не будет игнорировать его!Поэтому любые шаблоны в любом gitignore
или exclude
файле не применяются .
Это имеет смысл.Почему git хочет игнорировать изменения в файлах, которые он уже отслеживает?Если файл нужно игнорировать, вы должны сначала сказать git не отслеживать его, а затем git игнорировать его, как описано в руководстве.Информацию о том, как отследить файлы, см. В этом ответе .
Все это заставляет меня спросить, можно ли игнорировать изменения в отслеживаемых файлах?Опять мерзавец доставляет.Этот ответ; Git: игнорировать отслеживаемые файлы дает нам команду (замените file
файлом, который вы хотите игнорировать):
git update-index --assume-unchanged file
Наконец, вот дополнительная информацияпри отладке git ignore.
Страница руководства gitignore (5) сообщает нам:
Шаблоны, которые пользователь хочет игнорировать Git во всех ситуациях (например,резервные или временные файлы, сгенерированные выбранным пользователем редактором), обычно помещаются в файл, указанный в core.excludefile в ~ / .gitconfig пользователя.Его значение по умолчанию - $ XDG_CONFIG_HOME / git / ignore.Если $ XDG_CONFIG_HOME либо не установлен, либо пуст, вместо него используется $ HOME / .config / git / ignore.
Таким образом, он новый и заменяет предыдущий ~/.gitignore_global
, упомянутый ранее.
Далее, и это действительно полезно, так как с 1.8.2 у нас теперь есть несколько отличных инструментов отладки.Посмотрите на:
Git учится игнорировать лучше - Новое в 1.8.2
Здесь показано, как использовать новый флаг check-ignore
, чтобы убедиться, что gitуспешно игнорирует ваши шаблоны, например
git check-ignore bin/a.dll --verbose