| GIT-GREP(1) | Git Manual | GIT-GREP(1) |
نام (NAME)
git-grep - چاپ خطوط منطبق با یک الگو
خلاصه دستور (SYNOPSIS)
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>...]
توضیحات (DESCRIPTION)
جستجو برای الگوهای مشخصشده در فایلهای ردیابیشده در درخت کاری، blobهای ثبتشده در فایل نمایه، یا blobها در اشیاء درخت (tree) دادهشده. الگوها فهرستهایی از یک یا چند عبارت جستجو هستند که با نویسه خط جدید از هم جدا شدهاند. یک رشته خالی به عنوان عبارت جستجو با تمام خطوط مطابقت دارد.
گزینهها (OPTIONS)
--cached
--untracked
--no-index
این گزینه نمیتواند همراه با --cached یا --untracked استفاده شود. همچنین به grep.fallbackToNoIndex در بخش CONFIGURATION در زیر مراجعه کنید.
--no-exclude-standard
--exclude-standard
--recurse-submodules
-a, --text
--textconv
--no-textconv
-i, --ignore-case
-I
--max-depth <depth>
-r, --recursive
--no-recursive
-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, --name-only, -L, --files-without-match
-O[<pager>], --open-files-in-pager[=<pager>]
-z, --null
-o, --only-matching
-c, --count
--color[=<when>]
--no-color
--break
--heading
-p, --show-function
-<num>, -C <num>, --context <num>
-A <num>, --after-context <num>
-B <num>, --before-context <num>
-W, --function-context
-m <num>, --max-count <num>
--threads <num>
-f <file>
ارسال الگو از طریق <file> امکان ارائه الگوی جستجوی حاوی \0 را فراهم میکند.
همه انواع الگو از الگوهای حاوی \0 پشتیبانی نمیکنند. اگر نوع الگوی دادهشده نتواند از چنین الگویی پشتیبانی کند، گیت با خطا خارج میشود. نوع الگوی --perl-regexp هنگامی که با بکاند PCRE v2 کامپایل شده باشد بیشترین پشتیبانی را برای این نوع الگوها دارد.
در نسخههای گیت قبل از 2.23.0 الگوهای حاوی \0 بدون اطلاع به عنوان رشته ثابت در نظر گرفته میشدند. این موضوع هرگز مستند نشده بود، همچنین رفتارهای عجیب و مستندنشدهای میان مثلاً الگوهای غیر ASCII حاوی \0 و --ignore-case وجود داشت.
در نسخههای آینده ممکن است پشتیبانی از الگوهای حاوی \0 برای بکاندهای جستجوی بیشتری اضافه شود؛ تا آن زمان، هنگامی که نوع الگوی مورد نظر از آنها پشتیبانی نکند برنامه با خطا پایان مییابد.
-e
--and, --or, --not, ( ... )
--all-match
-q, --quiet
<tree>...
--
<pathspec>...
برای جزئیات بیشتر درباره نحو <pathspec>، مدخل pathspec در gitglossary(7) را ببینید.
مثالها (EXAMPLES)
git grep 'time_t' -- '*.[ch]'
git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)
git grep --all-match -e NODE -e Unexpected
git grep solution -- :^Documentation
نکاتی درباره ریسهها (NOTES ON THREADS)
هنگامی که از گزینه --open-files-in-pager استفاده شود، گزینه --threads (و پیکربندی grep.threads) نادیده گرفته خواهد شد و اجرای تکریسهای اجباری میشود.
هنگام جستجو در مخزن اشیاء (با --cached یا با دادن اشیاء درخت)، در صورتی که --textconv داده شده باشد و تبدیلات متنی بسیار زیادی وجود داشته باشد، اجرا با چندین ریسه ممکن است کندتر از اجرای تکریسهای عمل کند. بنابراین، اگر در این حالت کارایی پایینی مشاهده شد، ممکن است استفاده از --threads=1 مطلوب باشد.
پیکربندی (CONFIGURATION)
تمام موارد زیر این خط در این بخش بهطور گزینشی از مستندات git-config(1) آورده شده است. محتوا همان چیزی است که در آنجا یافت میشود:
grep.lineNumber
grep.column
grep.patternType
grep.extendedRegexp
grep.threads
grep.fullName
grep.fallbackToNoIndex
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |