Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.45.1 → 2.54.0 no changes
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 no changes
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 no changes
-
2.38.0
2022-10-02
- 2.32.1 → 2.37.7 no changes
-
2.32.0
2021-06-06
- 2.30.1 → 2.31.8 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.27.1 → 2.28.1 no changes
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.2 → 2.25.5 no changes
-
2.25.1
2020-02-17
- 2.24.1 → 2.25.0 no changes
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 no changes
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 no changes
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.16.6 → 2.17.6 no changes
- 2.15.4 no changes
-
2.14.6
2019-12-06
- 2.13.7 no changes
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 no changes
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.7.6 no changes
-
2.6.7
2017-05-05
- 2.2.3 → 2.5.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОБЗОР
git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp] [-v | --invert-match] [-h|-H] [--full-name] [-E | --extended-regexp] [-G | --basic-regexp] [-P | --perl-regexp] [-F | --fixed-strings] [-n | --line-number] [--column] [-l | --files-with-matches] [-L | --files-without-match] [(-O | --open-files-in-pager) [<пейджер>]] [-z | --null] [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet] [--max-depth <глубина>] [--[no-]recursive] [--color[=<когда>] | --no-color] [--break] [--heading] [-p | --show-function] [-A <после-контекста>] [-B <до-контекста>] [-C <контекст>] [-W | --function-context] [(-m | --max-count) <число>] [--threads <число>] [-f <файл>] [-e] <шаблон> [--and|--or|--not|(|)|-e <шаблон>…] [--recurse-submodules] [--parent-basename <базовое-имя>] [ [--[no-]exclude-standard] [--cached | --untracked | --no-index] | <дерево>…] [--] [<спецификатор-пути>…]
ОПИСАНИЕ
Искать указанные шаблоны в отслеживаемых файлах в рабочем каталоге, blob-объектах, зарегистрированных в файле индекса, или blob-объектах в заданных объектах деревьев. Шаблоны — это списки из одного или нескольких выражений поиска, разделённых символами новой строки. Пустая строка в качестве выражения поиска соответствует всем строкам.
ПАРАМЕТРЫ
- --cached
-
Вместо поиска в отслеживаемых файлах в рабочем каталоге искать blob-объекты, зарегистрированные в файле индекса.
- --untracked
-
В дополнение к поиску в отслеживаемых файлах в рабочем каталоге также искать в неотслеживаемых файлах.
- --no-index
-
Искать файлы в текущем каталоге, который не управляется Git, или игнорируя тот факт, что текущий каталог управляется Git. Это довольно похоже на запуск обычной утилиты
grep(1) с указанием её параметра-r, но с некоторыми дополнительными преимуществами, такими как использование шаблонов спецификатора пути для ограничения путей; дополнительную информацию см. в записи pathspec в gitglossary[7].Этот параметр нельзя использовать вместе с
--cachedили--untracked. См. такжеgrep.fallbackToNoIndexв разделе КОНФИГУРАЦИЯ ниже. - --no-exclude-standard
-
Также искать в игнорируемых файлах, не соблюдая механизм
.gitignore. Полезно только с--untracked. - --exclude-standard
-
Не обращать внимание на игнорируемые файлы, указанные через механизм
.gitignore. Полезно только при поиске файлов в текущем каталоге с--no-index. - --recurse-submodules
-
Рекурсивно искать в каждом активном и переключённом подмодуле в репозитории. При использовании в сочетании с параметром <дерево> префиксом всего вывода подмодулей будет имя объекта <дерево> родительского проекта. Этот параметр нельзя использовать вместе с
--untrackedи не действует, если указан--no-index. - -a
- --text
-
Обрабатывать двоичные файлы, как если бы они были текстовыми.
- --textconv
-
Соблюдать настройки фильтра textconv.
- --no-textconv
-
Не соблюдать настройки фильтра textconv. Это значение по умолчанию.
- -i
- --ignore-case
-
Игнорировать различия в регистре между шаблонами и файлами.
- -I
-
Не искать совпадения с шаблоном в двоичных файлах.
- --max-depth <глубина>
-
Для каждого <спецификатора-пути>, указанного в командной строке, опускаться не более чем на <глубину> уровней каталогов. Значение -1 означает отсутствие ограничения. Этот параметр игнорируется, если <спецификатор-пути> содержит активные подстановочные знаки. Другими словами, если "a*" соответствует каталогу с именем "a*", "*" сопоставляется буквально, поэтому --max-depth всё ещё действует.
- -r
- --recursive
-
То же, что и
--max-depth=-1; это значение по умолчанию. - --no-recursive
-
То же, что и
--max-depth=0. - -w
- --word-regexp
-
Сопоставлять шаблон только на границе слова (либо начинаться в начале строки, либо предваряться небуквенным символом; заканчиваться в конце строки либо за которым следует небуквенный символ).
- -v
- --invert-match
-
Выбирать несоответствующие строки.
- -h
- -H
-
По умолчанию команда показывает имя файла для каждого совпадения. Параметр
-hиспользуется для подавления этого вывода.-Hсуществует для полноты и ничего не делает, кроме как переопределяет-h, указанный ранее в командной строке. - --full-name
-
При запуске из подкаталога команда обычно выводит пути относительно текущего каталога. Этот параметр заставляет выводить пути относительно верхнего каталога проекта.
- -E
- --extended-regexp
- -G
- --basic-regexp
-
Использовать расширенные/базовые регулярные выражения POSIX для шаблонов. По умолчанию используются базовые регулярные выражения.
- -P
- --perl-regexp
-
Использовать Perl-совместимые регулярные выражения для шаблонов.
Поддержка этих типов регулярных выражений является необязательной зависимостью на этапе компиляции. Если Git был скомпилирован без поддержки, передача этой опции приведёт к его аварийному завершению.
- -F
- --fixed-strings
-
Использовать фиксированные строки для шаблонов (не интерпретировать шаблон как регулярное выражение).
- -n
- --line-number
-
Добавлять номер строки к совпадающим строкам.
- --column
-
Добавлять индексированный с 1 байтовый сдвиг первого совпадения от начала совпадающей строки.
- -l
- --files-with-matches
- --name-only
- -L
- --files-without-match
-
Вместо показа каждой совпавшей строки показывать только имена файлов, которые содержат (или не содержат) совпадения. Для лучшей совместимости с git diff
--name-onlyявляется синонимом--files-with-matches. - -O[<pager>]
- --open-files-in-pager[=<pager>]
-
Открывать совпадающие файлы в пейджере (не вывод grep). Если пейджером оказывается "less" или "vi", и пользователь указал только один шаблон, первый файл автоматически позиционируется на первом совпадении. Аргумент
pagerявляется необязательным; если указан, он должен примыкать к параметру без пробела. Еслиpagerне указан, будет использоваться пейджер по умолчанию (см.core.pagerв git-config[1]). - -z
- --null
-
Использовать \0 в качестве разделителя для имён путей в выводе и выводить их как есть. Без этого параметра имена путей с "необычными" символами заключаются в кавычки, как объяснено для переменной конфигурации
core.quotePath(см. git-config[1]). - -o
- --only-matching
-
Выводить только совпавшие (непустые) части совпадающей строки, помещая каждую такую часть на отдельную строку вывода.
- -c
- --count
-
Вместо показа каждой совпавшей строки показывать количество строк, которые совпадают.
- --color[=<когда>]
-
Показывать совпадения цветом. Значение должно быть always (по умолчанию), never или auto.
- --no-color
-
Отключить подсветку совпадений, даже если файл конфигурации задаёт цветной вывод по умолчанию. То же, что и
--color=never. - --break
-
Выводить пустую строку между совпадениями из разных файлов.
- --heading
-
Показывать имя файла над совпадениями в этом файле вместо начала каждой показанной строки.
- -p
- --show-function
-
Показывать предыдущую строку, содержащую имя функции совпадения, если только совпадающая строка сама не является именем функции. Имя определяется так же, как
gitdiffопределяет заголовки частей патча (см. Определение пользовательского заголовка части в gitattributes[5]). - -<число>
- -C <число>
- --context <число>
-
Показывать <число> предшествующих и последующих строк и помещать строку, содержащую
--, между смежными группами совпадений. - -A <число>
- --after-context <число>
-
Показывать <число> последующих строк и помещать строку, содержащую
--, между смежными группами совпадений. - -B <число>
- --before-context <число>
-
Показывать <число> предшествующих строк и помещать строку, содержащую
--, между смежными группами совпадений. - -W
- --function-context
-
Показывать окружающий текст от предыдущей строки, содержащей имя функции, до строки перед следующим именем функции, фактически показывая всю функцию, в которой было найдено совпадение. Имена функций определяются так же, как
gitdiffопределяет заголовки частей патча (см. Определение пользовательского заголовка части в gitattributes[5]). - -m <число>
- --max-count <число>
-
Ограничивать количество совпадений на файл. При использовании параметра
-vили--invert-matchпоиск останавливается после указанного количества несовпадений. Значение -1 вернёт неограниченное количество результатов (по умолчанию). Значение 0 приведёт к немедленному завершению с ненулевым статусом. - --threads <число>
-
Количество рабочих потоков
grepдля использования. Дополнительную информацию см. в разделах ЗАМЕЧАНИЯ О ПОТОКАХ иgrep.threadsв КОНФИГУРАЦИИ. - -f <файл>
-
Читать шаблоны из <файла>, по одному на строку.
Передача шаблона через <файл> позволяет указать шаблон поиска, содержащий \0.
Не все типы шаблонов поддерживают шаблоны, содержащие \0. Git завершится ошибкой, если данный тип шаблона не может поддерживать такой шаблон. Тип шаблона
--perl-regexpпри компиляции с внутренним механизмом PCRE v2 имеет самую широкую поддержку для таких типов шаблонов.В версиях Git до 2.23.0 шаблоны, содержащие \0, молча считались фиксированными. Это никогда не было задокументировано, также были странные и недокументированные взаимодействия, например, между не-ASCII шаблонами, содержащими \0, и
--ignore-case.В будущих версиях мы, возможно, научимся поддерживать шаблоны, содержащие \0, для большего количества внутренних механизмов поиска; до тех пор мы будем завершаться критической ошибкой, когда рассматриваемый тип шаблона не поддерживает их.
- -e
-
Следующий параметр — это шаблон. Этот параметр необходимо использовать для шаблонов, начинающихся с
-, и его следует использовать в сценариях, передающих пользовательский ввод в grep. Несколько шаблонов объединяются с помощью или. - --and
- --or
- --not
- ( … )
-
Указывает, как несколько шаблонов объединяются с помощью булевых выражений.
--or— оператор по умолчанию.--andимеет более высокий приоритет, чем--or.-eдолжен использоваться для всех шаблонов. - --all-match
-
При указании нескольких выражений шаблонов, объединённых с помощью
--or, этот флаг указывается для ограничения совпадения файлами, которые имеют строки, соответствующие всем им. - -q
- --quiet
-
Не выводить совпавшие строки; вместо этого завершиться со статусом 0, когда есть совпадение, и с ненулевым статусом, когда его нет.
- <tree>…
-
Вместо поиска в отслеживаемых файлах в рабочем каталоге искать blob-объекты в указанных деревьях.
- --
-
Обозначает конец параметров; остальные параметры являются ограничителями <спецификатор-пути>.
- <спецификатор-пути>…
-
Если указан, ограничивает поиск путями, соответствующими хотя бы одному шаблону. Поддерживаются как сопоставление начальных путей, так и шаблоны glob(7).
Более подробно синтаксис <спецификатора-пути> рассматривается в параграфе спецификатор пути (pathspec) в gitglossary[7].
ПРИМЕРЫ
-
gitgreptime_t'--*.[ch] -
Ищет
time_tво всех отслеживаемых файлах .c и .h в рабочем каталоге и его подкаталогах. - git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)
-
Ищет строку, содержащую
#defineи либоMAX_PATH, либоPATH_MAX. -
gitgrep--all-match-eNODE-eUnexpected -
Ищет строку, содержащую
NODEилиUnexpected, в файлах, которые имеют строки, соответствующие обоим. -
gitgrepsolution--:^Documentation -
Ищет
solution, исключая файлы вDocumentation.
ЗАМЕЧАНИЯ О ПОТОКАХ
Параметр --threads (и конфигурация grep.threads) будут игнорироваться при использовании --open-files-in-pager, что приводит к однопоточному выполнению.
При поиске в хранилище объектов (с --cached или указанием объектов деревьев) запуск с несколькими потоками может работать медленнее, чем однопоточный, если указан --textconv и выполняется слишком много текстовых преобразований. Таким образом, если в этом случае наблюдается низкая производительность, может быть желательно использовать --threads=1.
КОНФИГУРАЦИЯ
Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:
|
Warning
|
Missing See original version for this content. |
GIT
Является частью пакета git[1]