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.51.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) [<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 See original version for this content. |
GIT
Частина набору git[1]