git-check-ignore
Имя
git-check-ignore - Отладка файлов gitignore / исключение файлов
Синтаксис
git check-ignore [<options>] <pathname>… git check-ignore [<options>] --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 указано, вывод состоит из ряда строк вида:
<источник> <ДВОЕТОЧИЕ> <номер_строки> <ДВОЕТОЧИЕ> <шаблон> <HT> <путь>
<путь> — это путь к файлу, который проверяется, <шаблон> — это соответствующий шаблон, <источник> — это файл шаблона, а <номер_строки> — это номер строки шаблона в этом файле. Если шаблон содержал префикс "!" или суффикс "/", он будет сохранён в выводе. <источник> будет абсолютным путём, если он ссылается на файл, настроенный core.excludesFile, или относительным к корню хранилища, если он ссылается на .git/info/exclude или файл исключений по каталогу.
Если -z указано, имена путей в выводе разделяются нулевым символом; если --verbose также указано, то нулевые символы используются вместо двоеточий и жёстких табуляций:
<источник> <NULL> <номер_строки> <NULL> <шаблон> <NULL> <путь> <NULL>
Если -n или --non-matching указаны, несоответствующие имена путей также будут выведены, в этом случае все поля в каждой записи вывода, кроме <путь>, будут пустыми. Это может быть полезно при работе в неинтерактивном режиме, чтобы файлы можно было по частям передавать в стандартный ввод долго выполняющегося процесса check-ignore, и для каждого из этих файлов стандартный вывод будет указывать, соответствовал ли этот файл шаблону или нет. (Без этого параметра было бы невозможно сказать, означало ли отсутствие вывода для данного файла, что он не соответствовал никакому шаблону, или что вывод ещё не был сгенерирован.)
Буферизация происходит, как описано в параметре GIT_FLUSH в git[1]. Ответственный за предотвращение тупиковых ситуаций, вызванных переполнением буфера ввода или чтением из пустого буфера вывода.
Код завершения
- 0
-
Один или несколько заданных путей игнорируются.
- 1
-
Ни один из заданных путей не игнорируется.
- 128
-
Встретилась критическая ошибка.
См. также
check-ignore
© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-check-ignore