Итак, кажется, есть некоторое недоразумение. Статья на сайте pro git о gitignore относится к файлу .gitignore, а не к команда. Команда, упомянутая в другом вопросе, не является частью git, а частью пакета git extras вместо этого.
Подумав еще немного, я думаю, что начинаю понимать, что здесь сбивает с толку. Вы только что процитировали (часть) порядок, в котором git оценивает шаблоны игнорирования. В самом верху этого заказа находятся patterns from the command line
. Все это встроенные и настраиваемые (как в упомянутом ответе) команды, которые обрабатывают шаблоны игнорирования git.
Вторую цитату, вероятно, лучше всего объясняют примеры в нижней части справочной страницы gitignore. Я говорю о:
$ git status
[...]
# Неотслеживаемые файлы:
[...]
# Документация/foo.html
# Документация/gitignore.html
# файл. o
# lib.a
# src/internal.o
[...]
$ cat .git/info/exclude
# игнорировать объекты и архивы в любом месте дерева.
*.[oa]
$ cat Documentation/.gitignore
# игнорировать сгенерированные файлы html,
*.html
# кроме foo.html, который поддерживается вручную
!foo .html
$ git status
[...]
# Неотслеживаемые файлы:
[...]
# Documentation/foo.html
[...]
Также вполне допустимо размещать файл gitignore в любом месте вашего проекта, см. официальную документацию по gitignore а> еще раз:
Git обычно проверяет несколько источников в следующем порядке приоритета, от высшего к низшему:
- командная строка
- файл .gitignore в том же каталоге, что и путь, или в любом родительском каталоге, при этом шаблоны в файлах более высокого уровня (до верхнего уровня рабочего дерева) переопределяются шаблонами в файлах более низкого уровня ниже в каталог, содержащий файл. Эти шаблоны совпадают с расположением файла .gitignore. Проект обычно включает такие файлы .gitignore в свой репозиторий, содержащий шаблоны для файлов, сгенерированных как часть сборки проекта.
И часть о ведущей косой черте описана в следующем абзаце:
Начальная косая черта соответствует началу пути. Например, «/*.c» соответствует «cat-file.c», но не «mozilla-sha1/sha1.c».
Другими словами, шаблон обычно оценивается как глобус, за которым следует шаблон, и он будет соответствовать любому пути в любом подкаталоге относительно местоположения файла .gitignore
. Однако, если шаблон начинается с косой черты, это означает, что шаблон соответствует точно с начала относительного имени пути.
person
ingenious
schedule
14.05.2016
Patterns read from a .gitignore file in the same directory as the path, or in any parent directory, with patterns in the higher level files (up to the toplevel of the work tree) being overridden by those in lower level files down to the directory containing the file. These patterns match relative to the location of the .gitignore file. A project normally includes such .gitignore files in its repository, containing patterns for files generated as part of the project build.
- person ingenious   schedule 14.05.2016The git ignore command in the answer you've referenced is not part of git
Но к чему относятся эти две кавычки, если не к этой команде? - person John Kalane   schedule 14.05.2016