GIT-PRUNE(1) Git Manual GIT-PRUNE(1)

git-prune - هرس کردن تمام اشیاء غیرقابل دسترس از پایگاه‌داده اشیاء

git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]


نکته

در اغلب موارد، کاربران باید git gc را اجرا کنند که خود git prune را فراخوانی می‌کند. بخش «نکات (NOTES)» را در زیر ببینید.

این دستور git fsck --unreachable را با استفاده از تمام ارجاع‌های (refs) موجود در refs/، و به صورت اختیاری با مجموعه‌ای اضافی از اشیاء مشخص‌شده در خط فرمان، اجرا می‌کند و تمام اشیاء بازنشده (unpacked) که از هیچ‌یک از این اشیاء سر (head objects) قابل دسترس نیستند را از پایگاه‌داده اشیاء هرس می‌نماید. علاوه بر این، اشیاء بازنشده‌ای را که در بسته‌ها (packs) نیز یافت می‌شوند با اجرای git prune-packed هرس می‌کند. همچنین مدخل‌هایی را از .git/shallow که با هیچ ارجاعی قابل دسترس نیستند حذف می‌نماید.

توجه داشته باشید که اشیاء بسته‌بندی‌شده و غیرقابل دسترس باقی خواهند ماند. اگر این وضعیت مطلوب نیست، git-repack(1) را ببینید.

-n, --dry-run

چیزی را حذف نکن؛ فقط آنچه را که حذف خواهد شد گزارش بده.

-v, --verbose

تمام اشیاء حذف‌شده را گزارش می‌دهد.

--progress

نمایش پیشرفت.

--expire <time>

فقط اشیاء آزاد (loose) که قدیمی‌تر از <time> هستند را منقضی می‌کند.

--

دیگر هیچ آرگومانی را به عنوان گزینه تفسیر نکن.

<head>...

علاوه بر اشیاء قابل دسترس از هر یک از ارجاع‌های ما، اشیاء قابل دسترس از <head>های فهرست‌شده را نگه دار.

برای هرس کردن اشیایی که توسط مخزن شما، یا مخزن دیگری که از طریق .git/objects/info/alternates از مخزن شما امانت می‌گیرد، استفاده نمی‌شوند:

$ git prune $(cd ../another && git rev-parse --all)

در بیشتر موارد، کاربران نیازی به فراخوانی مستقیم git prune نخواهند داشت، بلکه در عوض باید git gc را فراخوانی کنند که هرس کردن را به همراه بسیاری دیگر از وظایف خانه‌داری (housekeeping) مدیریت می‌کند.

برای توضیحات درباره اینکه کدام اشیاء برای هرس در نظر گرفته می‌شوند، گزینه --unreachable دستور git fsck را ببینید.

git-fsck(1), git-gc(1), git-reflog(1)

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

2026-06-29 Git 2.55.0