GIT-CLEAN(1) Git Manual GIT-CLEAN(1)

git-clean - حذف فایل‌های ردیابی‌نشده از درخت کاری

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>...]

درخت کاری را با حذف بازگشتی فایل‌هایی که تحت کنترل نسخه نیستند، با شروع از دایرکتوری جاری، پاکسازی می‌کند.

به‌طور معمول، فقط فایل‌های ناشناخته برای گیت حذف می‌شوند، اما اگر گزینه -x مشخص شده باشد، فایل‌های نادیده‌گرفته‌شده (ignored) نیز حذف خواهند شد. این قابلیت برای نمونه می‌تواند جهت حذف تمام محصولات بیلد (build products) مفید باشد.

در صورتی که هرگونه آرگومان اختیاری <pathspec>... ارائه شود، تنها مسیرهایی که با pathspec مطابقت دارند تحت تأثیر قرار می‌گیرند.

-d

به‌طور معمول، هنگامی که هیچ <pathspec> مشخص نشده باشد، git clean برای جلوگیری از حذف بیش از حد، وارد دایرکتوری‌های ردیابی‌نشده نمی‌شود. برای ورود بازگشتی به چنین دایرکتوری‌هایی نیز گزینه -d را مشخص کنید. در صورتی که یک <pathspec> مشخص شده باشد، -d بی‌اثر است؛ تمام فایل‌های ردیابی‌نشده‌ای که با مسیرهای مشخص‌شده مطابقت دارند (به استثنای مخازن گیت تودرتو که ذیل --force ذکر شده‌اند) حذف خواهند شد.

-f, --force

اگر متغیر پیکربندی گیت clean.requireForce روی false تنظیم نشده باشد، git clean از حذف فایل‌ها یا دایرکتوری‌ها امتناع می‌کند مگر اینکه -f به آن داده شود. گیت همچنین از دستکاری مخازن گیت تودرتوی ردیابی‌نشده (دایرکتوری‌های دارای زیردایرکتوری .git) خودداری می‌کند، مگر اینکه یک -f دوم نیز داده شود.

-i, --interactive

کارهایی را که انجام خواهد شد نشان می‌دهد و فایل‌ها را به‌صورت تعاملی پاکسازی می‌کند. برای جزئیات به بخش «حالت تعاملی» مراجعه کنید. متغیر پیکربندی clean.requireForce نادیده گرفته می‌شود، زیرا این حالت با تعاملی بودن، حفاظت ایمنی مختص به خود را فراهم می‌آورد.

-n, --dry-run

در واقع چیزی را حذف نمی‌کند، فقط نشان می‌دهد چه کارهایی انجام خواهد شد. متغیر پیکربندی clean.requireForce نادیده گرفته می‌شود، زیرا در هر صورت چیزی حذف نخواهد شد.

-q, --quiet

بدون خروجی اضافی کار می‌کند؛ تنها خطاها را گزارش می‌دهد و فایل‌هایی را که با موفقیت حذف شده‌اند گزارش نمی‌کند.

-e <pattern>, --exclude=<pattern>

از الگوی استثنای (exclude) داده‌شده علاوه‌بر قوانین نادیده‌گیری استاندارد استفاده می‌کند (ببینید: gitignore(5)).

-x

از قوانین نادیده‌گیری استاندارد استفاده نمی‌کند (ببینید: gitignore(5))، اما همچنان از قوانین نادیده‌گیری ارائه‌شده با گزینه‌های -e از خط فرمان استفاده می‌کند. این امکان را فراهم می‌سازد تا تمام فایل‌های ردیابی‌نشده، از جمله محصولات بیلد، حذف شوند. این کار می‌تواند (احتمالاً در ترکیب با git restore یا git reset) برای ایجاد یک دایرکتوری کاری کاملاً تمیز جهت آزمایش یک بیلد تمیز به کار رود.

-X

تنها فایل‌های نادیده‌گرفته‌شده توسط گیت را حذف می‌کند. این گزینه می‌تواند برای بازسازی همه‌چیز از ابتدا و در عین حال نگه داشتن فایل‌های ایجادشده به صورت دستی، مفید باشد.

هنگامی که دستور وارد حالت تعاملی می‌شود، فایل‌ها و دایرکتوری‌هایی را که قرار است پاکسازی شوند نمایش می‌دهد و وارد حلقه دستورات تعاملی خود می‌شود.

حلقه دستورات فهرستی از زیردستورهای موجود را نشان داده و اعلان "What now> " را ارائه می‌دهد. به‌طور کلی، هنگامی که اعلان به یک علامت > تکی ختم می‌شود، شما تنها می‌توانید یکی از گزینه‌های ارائه‌شده را انتخاب کرده و کلید return (اینتر) را فشار دهید، مانند زیر:

*** Commands ***
    1: clean                2: filter by pattern    3: select by numbers
    4: ask each             5: quit                 6: help
What now> 1

همچنین تا زمانی که انتخاب شما یکتا و مشخص باشد، می‌توانید از c یا clean در بالا استفاده کنید.

حلقه اصلی دستورات دارای ۶ زیردستور است.

clean

شروع به پاکسازی فایل‌ها و دایرکتوری‌ها کرده و سپس خارج می‌شود.

filter by pattern

این زیردستور فایل‌ها و دایرکتوری‌هایی را که قرار است حذف شوند نشان می‌دهد و اعلان "Input ignore patterns>>" را صادر می‌کند. می‌توانید الگوهایی را که با فاصله از هم جدا شده‌اند وارد کنید تا فایل‌ها و دایرکتوری‌ها از حذف شدن مستثنی شوند. برای مثال "*.c *.h" فایل‌هایی را که به ".c" و ".h" ختم می‌شوند از حذف معاف می‌کند. هنگامی که از نتیجه فیلتر راضی شدید، کلید ENTER را (به‌صورت خالی) فشار دهید تا به منوی اصلی بازگردید.

select by numbers

این زیردستور فایل‌ها و دایرکتوری‌هایی را که قرار است حذف شوند نشان می‌دهد و اعلان "Select items to delete>>" را صادر می‌کند. هنگامی که اعلان مانند این به دو علامت >> ختم می‌شود، می‌توانید بیش از یک مورد را انتخاب کنید که با فاصله یا کاما از هم جدا شده‌اند. همچنین می‌توانید بازه‌ها را مشخص کنید. برای مثال "2-5 7,9" برای انتخاب موارد ۲، ۳، ۴، ۵، ۷، ۹ از فهرست به کار می‌رود. اگر عدد دوم در یک بازه حذف شود، تمام موارد باقی‌مانده انتخاب می‌شوند. برای مثال "7-" برای انتخاب موارد ۷، ۸، ۹ از فهرست. همچنین می‌توانید از * برای انتخاب همه‌چیز استفاده کنید. علاوه بر این، وقتی از نتیجه فیلتر راضی شدید، کلید ENTER را (به‌صورت خالی) فشار دهید تا به منوی اصلی بازگردید.

ask each

شروع به پاکسازی می‌کند و برای حذف هر مورد باید آن را تک‌به‌تک تأیید کنید. لطفاً توجه داشته باشید که این اقدام به اندازه دو اقدام بالا کارآمد نیست.

quit

به شما امکان می‌دهد بدون انجام هرگونه پاکسازی خارج شوید.

help

راهنمای استفاده خلاصه از git-clean تعاملی را نشان می‌دهد.

تمام موارد زیر این خط در این بخش به‌طور گزینشی از مستندات git-config(1) آورده شده است. محتوا همان چیزی است که در آنجا یافت می‌شود:

clean.requireForce

یک مقدار بولی که باعث می‌شود git-clean از حذف فایل‌ها امتناع کند مگر اینکه -f داده شود. پیش‌فرض true است.

gitignore(5)

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

2026-06-29 Git 2.55.0