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) [<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>]
-
Відкритваи відповідні файли у pager (а не у вихідних даних команди «grep»). Якщо pager — це «less» або «vi», а користувач вказав лише один шаблон, курсор у першому файлі автоматично встановлюється на перший збіг. Аргумент
pagerє необов’язковим; якщо він вказаний, його потрібно вказувати без пробілу. Якщо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
-
Показати попередній рядок, що містить назву функції, що відповідає значенню, якщо тільки рядок, що відповідає значенню, не є самою назвою функції. Назва визначається так само, як
gitdiffобчислює заголовки фрагментів латок (див. розділ «Визначення власного заголовка фрагмента» у gitattributes[5]). - -<num>
- -C <num>
- --context <num>
-
Показати <num> початкових та кінцевих рядків, а також розмістити рядок, що містить
--, між суміжними групами збігів. - -A <num>
- --after-context <num>
-
Показати кількість <num> кінцевих рядків та розмістити рядок, що містить
--, між суміжними групами збігів. - -B <num>
- --before-context <num>
-
Показати кількість <num> початкових рядків та розмістити рядок, що містить
--, між суміжними групами збігів. - -W
- --function-context
-
Показати навколишній текст від попереднього рядка, що містить назву функції, до рядка перед наступною назвою функції, фактично показуючи всю функцію, в якій було знайдено збіг. Назви функцій визначаються так само, як
gitdiffобчислює заголовки фрагментів латок (див. «Визначення власного заголовка фрагмента» у 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. Кілька шаблонів обʼєднуються за допомогою or. - --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].
ПРИКЛАДИ
-
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, що призведе до однопотокового виконання.
Під час grepping сховища обʼєктів (з --cached або наданням обʼєктів дерева), робота з кількома потоками може працювати повільніше, ніж з одним потоком, якщо задано --textconv і є забагато перетворень тексту. Таким чином, якщо в цьому випадку спостерігається низька продуктивність, може бути бажаним використання --threads=1.
КОНФІГУРАЦІЯ
Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:
|
Warning
|
Missing See original version for this content. |
GIT
Частина набору git[1]