українська мова ▾
Localized versions of git-grep manual
  1. English
  2. Français
  3. 日本語
  4. Português (Brasil)
  5. українська мова
  6. 简体中文
Topics ▾ Latest version ▾ git-grep last updated in 2.45.0
Changes in the git-grep manual
  1. 2.45.1 → 2.52.0 no changes
  2. 2.45.0 2024年04月29日
  3. 2.43.1 → 2.44.4 no changes
  4. 2.43.0 2023年11月20日
  5. 2.38.1 → 2.42.4 no changes
  6. 2.38.0 2022年10月02日
  7. 2.32.1 → 2.37.7 no changes
  8. 2.32.0 2021年06月06日
  9. 2.30.1 → 2.31.8 no changes
  10. 2.30.0 2020年12月27日
  11. 2.29.1 → 2.29.3 no changes
  12. 2.29.0 2020年10月19日
  13. 2.27.1 → 2.28.1 no changes
  14. 2.27.0 2020年06月01日
  15. 2.26.1 → 2.26.3 no changes
  16. 2.26.0 2020年03月22日
  17. 2.25.2 → 2.25.5 no changes
  18. 2.25.1 2020年02月17日
  19. 2.24.1 → 2.25.0 no changes
  20. 2.24.0 2019年11月04日
  21. 2.22.1 → 2.23.4 no changes
  22. 2.22.0 2019年06月07日
  23. 2.20.1 → 2.21.4 no changes
  24. 2.20.0 2018年12月09日
  25. 2.19.1 → 2.19.6 no changes
  26. 2.19.0 2018年09月10日
  27. 2.18.1 → 2.18.5 no changes
  28. 2.18.0 2018年06月21日
  29. 2.16.6 → 2.17.6 no changes
  30. 2.15.4 no changes
  31. 2.14.6 2019年12月06日
  32. 2.13.7 no changes
  33. 2.12.5 2017年09月22日
  34. 2.10.5 → 2.11.4 no changes
  35. 2.9.5 2017年07月30日
  36. 2.8.6 2017年07月30日
  37. 2.7.6 no changes
  38. 2.6.7 2017年05月05日
  39. 2.2.3 → 2.5.6 no changes
  40. 2.1.4 2014年12月17日
  41. 2.0.5 2014年12月17日

Check your version of git by running

git --version

НАЗВА

git-grep - Друк ліній, що відповідають шаблону

СИНОПСИС

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) [<pager>]]
	 [-z | --null]
	 [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
	 [--max-depth <depth>] [--[no-]recursive]
	 [--color[=<when>] | --no-color]
	 [--break] [--heading] [-p | --show-function]
	 [-A <post-context>] [-B <pre-context>] [-C <context>]
	 [-W | --function-context]
	 [(-m | --max-count) <num>]
	 [--threads <num>]
	 [-f <file>] [-e] <pattern>
	 [--and|--or|--not|(|)|-e <pattern>…​]
	 [--recurse-submodules] [--parent-basename <basename>]
	 [ [--[no-]exclude-standard] [--cached | --untracked | --no-index] | <tree>…​]
	 [--] [<pathspec>…​]

ОПИС

Шукати вказані шаблони у відстежуваних файлах у робочому дереві, блобах, зареєстрованих у файлі індексу, або блобах у заданих об’єктах дерева. Шаблони – це списки одного або кількох виразів пошуку, розділених символами нового рядка. Порожній рядок як вираз пошуку відповідає всім рядкам.

ОПЦІЇ

--cached

Замість пошуку відстежуваних файлів у робочому дереві, шукайте блоби, зареєстровані в індексному файлі.

--untracked

Окрім пошуку у відстежуваних файлах робочого дерева, також можна шукати у невідстежуваних файлах.

--no-index

Шукати файли в поточному каталозі, який не керується Git, або ігнорувати той факт, що поточний каталог керується Git. Це досить схоже на запуск звичайної утиліти grep(1) з вказаною опцією -r, але з деякими додатковими перевагами, такими як використання шаблонів pathspec для обмеження шляхів; див. запис pathspec у gitglossary[7] для отримання додаткової інформації.

Цей параметр не можна використовувати разом з --cached або --untracked. Див. також grep.fallbackToNoIndex у розділі «КОНФІГУРАЦІЯ» нижче.

--no-exclude-standard

Також шукати в ігнорованих файлах, не враховуючи механізм .gitignore. Корисно лише з --untracked.

--exclude-standard

Не звертати уваги на ігноровані файли, вказані за допомогою механізму .gitignore. Корисно лише під час пошуку файлів у поточному каталозі з параметром --no-index.

--recurse-submodules

Рекурсивно шукати в кожному активному та витягнутому з репозиторію підмодулі. При використанні в поєднанні з опцією <tree> префіксом усіх виводів підмодулів буде назва об’єкта <tree> батьківського проекту. Цю опцію не можна використовувати разом з --untracked, і вона не має ефекту, якщо вказано --no-index.

-a
--text

Обробляти бінарні файли так, ніби вони є текстом.

--textconv

Дотримуватись налаштувань фільтра textconv.

--no-textconv

Не враховувати налаштування фільтра textconv. Це значення за замовчуванням.

-i
--ignore-case

Ігноруйте відмінності у регістрі літер між шаблонами та файлами.

-I

Не збігається зі шаблоном у двійкових файлах.

--max-depth <depth>

Для кожного <pathspec>, заданого в командному рядку, спуститися максимум на рівні <depth> каталогів. Значення -1 означає відсутність обмежень. Цей параметр ігнорується, якщо <pathspec> містить активні шаблони підстановки. Іншими словами, якщо "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[=<when>]

Показувати кольорові збіги. Значення має бути always (за замовчуванням), never або auto.

--no-color

Вимкнути підсвічування збігів, навіть якщо у файлі конфігурації задано кольоровий вивід за замовчуванням. Те саме, що й --color=never.

--break

Вивести порожній рядок між збігами з різних файлів.

--heading

Показувати назву файлу над збігами у цьому файлі, а не на початку кожного показаного рядка.

-p
--show-function

Показати попередній рядок, що містить назву функції, що відповідає значенню, якщо тільки рядок, що відповідає значенню, не є самою назвою функції. Назва визначається так само, як git diff обчислює заголовки патчів hunk (див. Визначення власного заголовка hunk у gitattributes[5]).

-<num>
-C <num>
--context <num>

Показати <num> початкових та кінцевих рядків, а також розмістити рядок, що містить --, між суміжними групами збігів.

-A <num>
--after-context <num>

Показати <num> кінцевих рядків та розмістити рядок, що містить --, між суміжними групами збігів.

-B <num>
--before-context <num>

Показати <num> початкових рядків та розмістити рядок, що містить --, між суміжними групами збігів.

-W
--function-context

Показати навколишній текст від попереднього рядка, що містить назву функції, до рядка перед наступною назвою функції, фактично показуючи всю функцію, в якій було знайдено збіг. Назви функцій визначаються так само, як git diff обчислює заголовки патчів (див. Визначення власного заголовка hunk у gitattributes[5]).

-m <num>
--max-count <num>

Обмежте кількість збігів у файлі. При використанні опції -v або --invert-match пошук зупиняється після вказаної кількості незбігів. Значення -1 поверне необмежену кількість результатів (за замовчуванням). Значення 0 призведе до негайного завершення з ненульовим статусом.

--threads <num>

Кількість робочих потоків grep для використання. Див. розділи «НОТИ ЩОДО ПОТОКІВ» та grep.threads у розділі «КОНФІГУРАЦІЯ» для отримання додаткової інформації.

-f <file>

Зчитувати шаблони з <файлу>, по одному на рядок.

Передача шаблону через <file> дозволяє забезпечити шаблон пошуку, що містить 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>…​

Замість пошуку відстежуваних файлів у робочому дереві, шукайте блоби у заданих деревах.

--

Сигналізує про кінець опцій; решта параметрів є обмежувачами <pathspec>.

<pathspec>…​

Якщо вказано, обмежте пошук шляхами, що відповідають принаймні одному шаблону. Підтримуються як шаблони leading paths match, так і glob(7).

Для отримання додаткової інформації про синтаксис <pathspec> див. запис pathspec у gitglossary[7].

ПРИКЛАДИ

git grep time_t' -- *.[ch]

Шукає time_t у всіх відстежуваних файлах .c та .h у робочому каталозі та його підкаталогах.

git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)

Шукає рядок, що містить #define та MAX_PATH або PATH_MAX.

git grep --all-match -e NODE -e Unexpected

Шукає рядок із NODE або Unexpected у файлах, що містять рядки, що відповідають обом.

git grep solution -- :^Documentation

Шукає рішення, виключаючи файли в Документації.

НОТАТКИ ЩОДО РИТОК

Опція --threads (і конфігурація grep.threads) буде ігноруватися, коли використовується --open-files-in-pager, що призведе до однопотокового виконання.

Під час grepping сховища об’єктів (з --cached або наданням об’єктів дерева), робота з кількома потоками може працювати повільніше, ніж з одним потоком, якщо задано --textconv і є забагато перетворень тексту. Таким чином, якщо в цьому випадку спостерігається низька продуктивність, може бути бажаним використання --threads=1.

КОНФІГУРАЦІЯ

Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:

Warning

Missing uk/config/grep.adoc

See original version for this content.

GIT

Частина набору git[1]

AltStyle によって変換されたページ (->オリジナル) /