Значение начального слеша в файле `.gitignore` - PullRequest
32 голосов
/ 04 июля 2011

Если я поместил шаблон в файл .gitignore с косой чертой, косая черта относится к каталогу, в котором находится файл .gitignore, или к корню всего хранилища?

(Найденные мной справочные страницы тщательно скрывали эту информацию.)

1 Ответ

29 голосов
/ 04 июля 2011

Это текст документации :

  • Начальная косая черта соответствует началу имени пути.Например, «/*.c» соответствует «cat-file.c», но не «mozilla-sha1 / sha1.c».

Это мои догадки:

  • Если вы используете in-repository- .gitignore, каталог, в котором находится .gitignore - не очень полезно делать его относительно корня хранилища.

    Короткий эксперимент с файлами с одинаковыми именами в корне репозитория и подкаталоге (и .gitignore в этом же каталоге) подтверждает это.

  • Если вы используете .git/info/exclude илиcore.excludesfile, я полагаю, это относительно корня хранилища.

    Также это (для информации / исключения) подтверждается одним и тем же тестом (оба теста на 1.7.3.4).

Шнуки нашел правильную часть документации об этом (выделено мной):

  • [...]
  • Шаблоны, прочитанные с .gitignoreфайл в том же каталоге, что и путь, или в любом родительском каталоге, причем шаблоны в файлах более высокого уровня (вплоть до верхнего уровня рабочего дерева) переопределяются теми, которые находятся в нижнем уровнеУровень файлов до каталога, содержащего файл. Эти шаблоны соответствуют расположению файла .gitignore. Проект обычно включает в свой репозиторий такие файлы .gitignore, которые содержат шаблоны для файлов, созданных как часть сборки проекта.
  • [...]

Можно сказать, что этот факт мог бы повториться в более поздней части, приведенной выше, для ясности.

...