Если я поместил шаблон в файл .gitignore с косой чертой, косая черта относится к каталогу, в котором находится файл .gitignore, или к корню всего хранилища?
.gitignore
(Найденные мной справочные страницы тщательно скрывали эту информацию.)
Это текст документации :
Начальная косая черта соответствует началу имени пути.Например, «/*.c» соответствует «cat-file.c», но не «mozilla-sha1 / sha1.c».
Это мои догадки:
Если вы используете in-repository- .gitignore, каталог, в котором находится .gitignore - не очень полезно делать его относительно корня хранилища.
Короткий эксперимент с файлами с одинаковыми именами в корне репозитория и подкаталоге (и .gitignore в этом же каталоге) подтверждает это.
Если вы используете .git/info/exclude илиcore.excludesfile, я полагаю, это относительно корня хранилища.
.git/info/exclude
core.excludesfile
Также это (для информации / исключения) подтверждается одним и тем же тестом (оба теста на 1.7.3.4).
Шнуки нашел правильную часть документации об этом (выделено мной):
[...] Шаблоны, прочитанные с .gitignoreфайл в том же каталоге, что и путь, или в любом родительском каталоге, причем шаблоны в файлах более высокого уровня (вплоть до верхнего уровня рабочего дерева) переопределяются теми, которые находятся в нижнем уровнеУровень файлов до каталога, содержащего файл. Эти шаблоны соответствуют расположению файла .gitignore. Проект обычно включает в свой репозиторий такие файлы .gitignore, которые содержат шаблоны для файлов, созданных как часть сборки проекта. [...]
Можно сказать, что этот факт мог бы повториться в более поздней части, приведенной выше, для ясности.