Русский ▾ Topics ▾ Latest version ▾ git-check-ignore last updated in 2.52.0

НАЗВАНИЕ

git-check-ignore — отладка файлов gitignore / исключений

ОБЗОР

git check-ignore [<параметры>] <имя-пути>…​
git check-ignore [<параметры>] --stdin

ОПИСАНИЕ

Для каждого имени пути, указанного через командную строку или из файла через --stdin, проверяет, исключён ли файл с помощью .gitignore (или других входных файлов механизма исключений), и выводит путь, если он исключён.

По умолчанию отслеживаемые файлы вообще не показываются, поскольку они не подпадают под правила исключений; но см. ‘--no-index’.

ПАРАМЕТРЫ

-q
--quiet

Ничего не выводить, только установить код выхода. Это допустимо только для одного имени пути.

-v
--verbose

Вместо вывода исключённых путей для каждого пути, соответствующего шаблону исключения, выводит шаблон исключения вместе с путём. (Соответствие шаблону исключения обычно означает, что путь исключён, но если шаблон начинается с "!", то это отрицающий шаблон, и соответствие ему означает, что путь НЕ исключён.)

Правила приоритета внутри и между источниками исключений см. в gitignore[5].

--stdin

Читать имена путей из стандартного ввода, по одному на строку, вместо чтения из командной строки.

-z

Формат вывода изменён, чтобы быть машиночитаемым (см. ниже). Если также указан --stdin, входные пути разделяются символом NUL вместо символа перевода строки.

-n
--non-matching

Показывать указанные пути, которые не соответствуют ни одному шаблону. Это имеет смысл только когда включён --verbose, иначе невозможно было бы различить пути, которые соответствуют шаблону, и те, которые не соответствуют.

--no-index

Не заглядывать в индекс при выполнении проверок. Это можно использовать для отладки того, почему путь стал отслеживаемым, например, с помощью git add ., и не был проигнорирован правилами, как ожидал пользователь, или при разработке шаблонов, включающих отрицание, для соответствия пути, ранее добавленному с помощью git add -f.

ВЫВОД

По умолчанию любые из указанных имён путей, которые соответствуют шаблону игнорирования, будут выведены, по одному на строку. Если ни один шаблон не соответствует указанному пути, для этого пути ничего не будет выведено; это означает, что путь не будет игнорироваться.

Если указан --verbose, вывод представляет собой серию строк вида:

<источник> <ДВОЕТОЧИЕ> <номер-строки> <ДВОЕТОЧИЕ> <шаблон> <ТАБ> <имя-пути>

<имя-пути> — это путь к запрашиваемому файлу, <шаблон> — соответствующий шаблон, <источник> — это исходный файл шаблона, а <номер-строки> — это номер строки шаблона в этом источнике. Если шаблон содержал префикс "!" или суффикс "/", он будет сохранён в выводе. <источник> будет абсолютным путём при обращении к файлу, настроенному с помощью core.excludesFile, или относительным корня репозитория при обращении к .git/info/exclude или к файлу исключений каталога.

Если указан -z, имена путей в выводе разделяются нулевым символом; если также указан --verbose, то нулевые символы также используются вместо двоеточий и жёстких табуляций:

<источник> <NULL> <номер-строки> <NULL> <шаблон> <NULL> <имя-пути> <NULL>

Если указан -n или --non-matching, также будут выводиться несоответствующие имена путей, и в этом случае все поля в каждой записи вывода, кроме <имя-пути>, будут пустыми. Это может быть полезно при неинтерактивном запуске, чтобы файлы могли постепенно передаваться в STDIN долго работающего процесса check-ignore, и для каждого из этих файлов STDOUT будет указывать, соответствовал ли этот файл шаблону или нет. (Без этого параметра было бы невозможно определить, означает ли отсутствие вывода для данного файла, что он не соответствует ни одному шаблону, или что вывод ещё не был сгенерирован.)

Буферизация происходит так, как описано в параметре GIT_FLUSH в git[1]. Вызывающая сторона отвечает за предотвращение взаимных блокировок (deadlocks), вызванных переполнением входного буфера или чтением из пустого выходного буфера.

КОД ЗАВЕРШЕНИЯ

0

Один или несколько предоставленных путей игнорируются.

1

Ни один из предоставленных путей не игнорируется.

128

Обнаружена критическая ошибка.

GIT

Является частью пакета git[1]