GIT-CHECK-IGNORE(1) Git Manual GIT-CHECK-IGNORE(1)

git-check-ignore - اشکال‌زدایی فایل‌های gitignore / exclude

git check-ignore [<options>] <pathname>...
git check-ignore [<options>] --stdin

به ازای هر نام مسیر داده‌شده از طریق خط فرمان یا از طریق یک فایل با --stdin، بررسی می‌کند که آیا فایل توسط .gitignore (یا سایر فایل‌های ورودی به سازوکار مستثنی‌سازی) نادیده گرفته شده است یا خیر و در صورت مستثنی بودن، مسیر را در خروجی چاپ می‌کند.

به طور پیش‌فرض، فایل‌های ردگیری‌شده (tracked) اصلاً نمایش داده نمی‌شوند زیرا مشمول قوانین مستثنی‌سازی نیستند؛ اما ‘--no-index’ را ببینید.

-q, --quiet

هیچ خروجی تولید نمی‌کند، فقط وضعیت خروج را تنظیم می‌کند. این گزینه فقط همراه با یک نام مسیر معتبر است.

-v, --verbose

به جای چاپ صرف مسیرهایی که مستثنی شده‌اند، برای هر مسیری که با یک الگوی استثنا مطابقت دارد، الگوی استثنا را همراه با مسیر چاپ می‌کند. (تطبیق با یک الگوی استثنا معمولاً به این معنی است که مسیر نادیده گرفته می‌شود، اما اگر الگو با «!» شروع شود، یک الگوی نفی‌شده است و تطابق با آن به این معنی است که مسیر نادیده گرفته *نمی‌شود*).

برای قوانین حق تقدم درون و میان منابع استثنا، gitignore(5) را ببینید.

--stdin

نام مسیرها را به جای خط فرمان، از ورودی استاندارد (یک نام مسیر در هر خط) می‌خواند.

-z

قالب خروجی را به شکلی تغییر می‌دهد که برای ماشین قابل تجزیه باشد (پایین را ببینید). اگر --stdin نیز داده شود، مسیرهای ورودی به جای نویسه خط جدید با نویسه NUL جدا می‌شوند.

-n, --non-matching

مسیرهای داده‌شده‌ای را که با هیچ الگویی مطابقت ندارند نشان می‌دهد. این گزینه تنها زمانی کاربرد دارد که --verbose فعال باشد، در غیر این صورت تشخیص مسیرهایی که با یک الگو مطابقت دارند از آن‌هایی که تطابق ندارند ممکن نخواهد بود.

--no-index

هنگام انجام بررسی‌ها، در نمایه (index) جستجو نمی‌کند. این گزینه می‌تواند برای اشکال‌زدایی این که چرا یک مسیر مثلاً توسط git add . ردگیری شده و بر خلاف انتظار کاربر توسط قوانین نادیده گرفته نشده است، یا هنگام توسعه الگوهای حاوی نفی برای تطبیق با مسیری که پیش‌تر با git add -f اضافه شده، استفاده شود.

به طور پیش‌فرض، هر یک از نام مسیرهای داده‌شده که با یک الگوی نادیده‌گیری مطابقت داشته باشند، در هر خط یکی در خروجی چاپ می‌شوند. اگر هیچ الگویی با یک مسیر داده‌شده مطابقت نداشته باشد، چیزی برای آن مسیر در خروجی چاپ نخواهد شد؛ این بدان معناست که آن مسیر نادیده گرفته نخواهد شد.

اگر --verbose مشخص شود، خروجی به صورت مجموعه‌ای از خطوط با قالب زیر خواهد بود:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

<pathname> مسیر فایل مورد پرس‌وجو، <pattern> الگوی تطبیق‌یافته، <source> فایل منبع الگو، و <linenum> شماره خط الگو در آن منبع است. اگر الگو دارای پیشوند «!» یا پسوند «/» باشد، در خروجی حفظ خواهد شد. هنگامی که <source> به فایل پیکربندی‌شده توسط core.excludesFile اشاره کند، یک مسیر مطلق خواهد بود، یا هنگام اشاره به .git/info/exclude یا یک فایل استثنای درون هر دایرکتوری، نسبت به ریشه مخزن خواهد بود.

اگر -z مشخص شود، نام مسیرها در خروجی با نویسه null جدا می‌شوند؛ اگر --verbose نیز مشخص شده باشد، به جای دونقطه و تب سخت (hard tab) نیز از نویسه‌های null استفاده می‌شود:

<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>

اگر -n یا --non-matching مشخص شوند، نام مسیرهای نامنطبق نیز در خروجی چاپ خواهند شد، که در این حالت تمام فیلدها در هر رکورد خروجی به جز <pathname> خالی خواهند بود. این می‌تواند هنگام اجرای غیرتعاملی مفید باشد، به طوری که فایل‌ها را می‌توان به صورت تدریجی به STDIN یک فرآیند طولانی‌مدت check-ignore هدایت کرد، و به ازای هر یک از این فایل‌ها، STDOUT مشخص خواهد کرد که آیا آن فایل با الگویی مطابقت داشته است یا خیر. (بدون این گزینه، تشخیص این که آیا نبود خروجی برای یک فایل معین به معنی عدم تطابق با هرگونه الگو بوده، یا این که خروجی هنوز تولید نشده است، غیرممکن خواهد بود).

بافرسازی همان‌طور که ذیل گزینه GIT_FLUSH در git(1) مستند شده است انجام می‌شود. فراخواننده مسئول جلوگیری از بن‌بست‌های ناشی از پر شدن بیش از حد بافر ورودی یا خواندن از بافر خروجی خالی است.

0

یک یا چند مورد از مسیرهای ارائه‌شده نادیده گرفته شده‌اند (مستثنی هستند).

1

هیچ‌یک از مسیرهای ارائه‌شده نادیده گرفته نشده‌اند.

128

یک خطای مهلک رخ داد.

gitignore(5) git-config(1) git-ls-files(1)

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0