Думав, що я на цьому розберуся. Є ще одна причина, через яку файл глобального ігнорування не працює. Це те, що, на мою думку, не було висвітлено в попередніх відповідях. Це настільки сліпуче очевидно, що - звичайно - це дуже легко пропустити.
Це те, що git буде ігнорувати лише нові файли . Якщо файл вже відслідковується git, то, звичайно, git не буде його ігнорувати! Отже, які б шаблони в будь-якому файлі gitignore
та exclude
файлі не застосовувались .
Що має сенс. Чому git хоче ігнорувати зміни файлів, які він вже відстежує? Якщо файл потрібно ігнорувати, спочатку потрібно сказати git не відстежувати його, а потім git ігнорувати, як описано в посібнику. Інформацію про те, як відстежувати файли, див. У цій відповіді .
Це все змушує мене запитати, чи можна ігнорувати зміни у відстежуваних файлах? Знову ж таки, git забезпечує. Ця відповідь; Git: Ігнорувати відстежувані файли дає нам команду (замініть file
файлом, який ви хочете проігнорувати):
git update-index --assume-unchanged file
Нарешті, ось додаткова інформація про налагодження git ignore.
Сторінка керівництва Gitignore (5) повідомляє нам:
Шаблони, які користувач хоче, щоб Git ігнорував у будь-яких ситуаціях (наприклад, резервні копії або тимчасові файли, створені вибраним редактором користувача), як правило, потрапляють у файл, зазначений core.excludesfile в користувацькому ~ / .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