'\" t .\" Title: git-gc .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: Git Manual .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-GC" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-gc \- پاکسازی فایل‌های غیرضروری و بهینه‌سازی مخزن محلی .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit gc\fR [\-\-aggressive] [\-\-auto] [\-\-[no\-]detach] [\-\-quiet] [\-\-prune= | \-\-no\-prune] [\-\-force] [\-\-keep\-largest\-pack] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp تعدادی از وظایف نگهداری و مرتب‌سازی (housekeeping) را در مخزن فعلی اجرا می‌کند؛ مانند فشرده‌سازی نسخه‌های فایل (جهت کاهش فضای دیسک و افزایش کارایی)، حذف اشیاء غیرقابل‌دسترس که ممکن است از فراخوانی‌های قبلی \fIgit add\fR ایجاد شده باشند، بسته‌بندی ارجاعات (refs)، هرس کردن reflog، فراداده‌های rerere یا درخت‌های کاری (working trees) بی‌استفاده و کهنه\&. همچنین ممکن است نمایه‌های کمکی مانند گراف کامیت (commit\-graph) را به‌روزرسانی کند\&. .sp هنگامی که عملیات متداول پرسلین (دستورات سطح بالای کاربری که شیء جدید ایجاد می‌کنند) اجرا می‌شوند، بررسی می‌کنند که آیا مخزن از زمان آخرین نگهداری رشد چشمگیری داشته است یا خیر، و در صورت لزوم، \fBgit\fR \fBgc\fR را به صورت خودکار اجرا می‌کنند\&. برای چگونگی غیرفعال کردن این رفتار، پیکربندی \fBgc\&.auto\fR را در ادامه ببینید\&. .sp اجرای دستی \fBgit\fR \fBgc\fR تنها زمانی مورد نیاز است که اشیایی بدون اجرای منظم چنین دستورات پرسلینی به مخزن افزوده شوند، یا برای انجام یک بهینه‌سازی یک‌باره مخزن، یا مثلاً برای پاکسازی پس از یک درون‌ریزی انبوه غیراستاندارد (mass\-import)\&. برای جزئیات بیشتر در مورد موارد درون‌ریزی، بخش «PACKFILE OPTIMIZATION» در \fBgit-fast-import\fR(1) را ببینید\&. .SH "گزینه‌ها (OPTIONS)" .PP \-\-aggressive .RS 4 معمولاً \fIgit gc\fR بسیار سریع اجرا می‌شود و در عین حال استفاده بهینه‌ای از فضای دیسک و کارایی مناسبی ارائه می‌دهد\&. این گزینه باعث می‌شود \fIgit gc\fR مخزن را به صورت تهاجمی‌تر بهینه‌سازی کند که این امر به بهای صرف زمان بسیار بیشتری تمام خواهد شد\&. اثرات این بهینه‌سازی تا حد زیادی ماندگار است\&. برای جزئیات، بخش «بهینه‌سازی تهاجمی (AGGRESSIVE)» در زیر را ببینید\&. .RE .PP \-\-auto .RS 4 با این گزینه، \fIgit gc\fR بررسی می‌کند که آیا نیازی به کارهای نگهداری وجود دارد یا خیر؛ اگر نیازی نباشد، بدون انجام هیچ کاری خارج می‌شود\&. .sp برای چگونگی کارکرد این روش مکاشفه‌ای (heuristic)، گزینه \fBgc\&.auto\fR در بخش «پیکربندی (CONFIGURATION)» در زیر را ببینید\&. .sp به محض آنکه کارهای نگهداری به دلیل عبور از محدودیت‌های گزینه‌های پیکربندی نظیر \fBgc\&.auto\fR و \fBgc\&.autoPackLimit\fR آغاز شود، تمامی وظایف دیگر نگهداری (مانند rerere، درخت‌های کاری، reflog و غیره) نیز اجرا خواهند شد\&. .RE .PP \-\-detach, \-\-no\-detach .RS 4 اجرا در پس‌زمینه در صورتی که سیستم از آن پشتیبانی کند\&. این گزینه تنظیمات \fBgc\&.autoDetach\fR را بازنویسی می‌کند\&. .RE .PP \-\-cruft, \-\-no\-cruft .RS 4 هنگام منقضی کردن اشیاء غیرقابل‌دسترس، آن‌ها را به جای ذخیره به عنوان اشیاء آزاد، به طور جداگانه درون یک بسته باطله (cruft pack) بسته‌بندی می‌کند\&. \fB\-\-cruft\fR به طور پیش‌فرض فعال است\&. .RE .PP \-\-max\-cruft\-size= .RS 4 هنگام بسته‌بندی اشیاء غیرقابل‌دسترس در یک بسته باطله (cruft pack)، اندازه بسته‌های جدید cruft را به حداکثر \fI\fR بایت محدود می‌کند\&. هر مقداری که از طریق پیکربندی \fBgc\&.maxCruftSize\fR تعیین شده باشد را نادیده می‌گیرد\&. برای اطلاعات بیشتر، گزینه \fB\-\-max\-cruft\-size\fR از \fBgit-repack\fR(1) را ببینید\&. .RE .PP \-\-expire\-to= .RS 4 هنگام بسته‌بندی اشیاء غیرقابل‌دسترس در یک cruft pack، یک بسته باطله شامل اشیاء هرس‌شده (در صورت وجود) را در دایرکتوری \fI\fR می‌نویسد\&. این گزینه تنها در صورتی کاربرد دارد که همراه با \fB\-\-cruft\fR استفاده شود\&. برای اطلاعات بیشتر، گزینه \fB\-\-expire\-to\fR از \fBgit-repack\fR(1) را ببینید\&. .RE .PP \-\-prune= .RS 4 هرس کردن اشیاء آزاد قدیمی‌تر از تاریخ مشخص‌شده (پیش‌فرض ۲ هفته قبل است که با متغیر پیکربندی \fBgc\&.pruneExpire\fR قابل تغییر است)\&. مقدار \-\-prune=now اشیاء آزاد را صرف‌نظر از سن آن‌ها هرس می‌کند و اگر فرآیند دیگری به طور همزمان در حال نوشتن در مخزن باشد، خطر خراب شدن مخزن را افزایش می‌دهد؛ بخش «نکات (NOTES)» را در ادامه ببینید\&. گزینه \-\-prune به طور پیش‌فرض فعال است\&. .RE .PP \-\-no\-prune .RS 4 هیچ‌یک از اشیاء آزاد را هرس نمی‌کند\&. .RE .PP \-\-quiet .RS 4 فرونشاندن تمام گزارش‌های پیشرفت (حالت بی‌صدا)\&. .RE .PP \-\-force .RS 4 اجبار \fBgit\fR \fBgc\fR به اجرا حتی اگر نمونه دیگری از \fBgit\fR \fBgc\fR روی این مخزن در حال اجرا باشد\&. .RE .PP \-\-keep\-largest\-pack .RS 4 تمام بسته‌ها به جز بزرگترین بسته غیر باطله (non\-cruft)، بسته‌های نشانه‌گذاری‌شده با فایل \fB\&.keep\fR و هر بسته cruft، درون یک بسته واحد تجمیع می‌شوند\&. هنگام استفاده از این گزینه، \fBgc\&.bigPackThreshold\fR نادیده گرفته می‌شود\&. .RE .SH "بهینه‌سازی تهاجمی (AGGRESSIVE)" .sp هنگامی که گزینه \fB\-\-aggressive\fR مشخص شود، دستور \fBgit-repack\fR(1) با فلگ \fB\-f\fR فراخوانی خواهد شد، که به نوبه خود فلگ \fB\-\-no\-reuse\-delta\fR را به \fBgit-pack-objects\fR(1) ارسال می‌کند\&. این کار تمام دلتاهای موجود را دور ریخته و آن‌ها را مجدداً محاسبه می‌کند، که به قیمت صرف زمان بسیار بیشتری در بسته‌بندی مجدد تمام خواهد شد\&. .sp اثرات این بهینه‌سازی تا حد زیادی ماندگار هستند؛ به عنوان مثال هنگامی که بسته‌ها و اشیاء آزاد درون یک بسته دیگر ادغام می‌شوند، ممکن است دلتاهای موجود در آن بسته مجدداً استفاده شوند، اما موارد متعددی نیز وجود دارد که در آن‌ها ممکن است دلتایی غیراپتیمال از یک بسته جدیدتر انتخاب شود\&. .sp علاوه بر این، ارائه \fB\-\-aggressive\fR گزینه‌های \fB\-\-depth\fR و \fB\-\-window\fR ارسالی به \fBgit-repack\fR(1) را تنظیم می‌کند\&. تنظیمات \fBgc\&.aggressiveDepth\fR و \fBgc\&.aggressiveWindow\fR را در زیر ببینید\&. با استفاده از اندازه پنجره بزرگتر، احتمال یافتن دلتاهای بهینه‌تر بیشتر می‌شود\&. .sp احتمالاً استفاده از این گزینه روی یک مخزن خاص بدون اجرای بنچمارک‌های کارایی متناسب، ارزشش را ندارد\&. این گزینه زمان بسیار بیشتری می‌برد و بهینه‌سازی حاصل در فضا و دلتا ممکن است ارزش این زمان را داشته باشد یا نداشته باشد\&. عدم استفاده از این گزینه برای اکثر کاربران و مخازن آن‌ها بهترین مصالحه (trade\-off) است\&. .SH "پیکربندی (CONFIGURATION)" .sp تمام موارد زیر این خط در این بخش، به صورت انتخابی از مستندات \fBgit-config\fR(1) گنجانده شده‌اند\&. محتوا همان چیزی است که در آنجا یافت می‌شود: .PP gc\&.aggressiveDepth .RS 4 پارامتر عمق استفاده‌شده در الگوریتم فشرده‌سازی دلتا توسط \fIgit gc \-\-aggressive\fR\&. مقدار پیش‌فرض آن ۵۰ است که همان پیش‌فرض گزینه \fB\-\-depth\fR در زمانی است که \fB\-\-aggressive\fR استفاده نمی‌شود\&. .sp برای جزئیات بیشتر، مستندات مربوط به گزینه \fB\-\-depth\fR در \fBgit-repack\fR(1) را ببینید\&. .RE .PP gc\&.aggressiveWindow .RS 4 پارامتر اندازه پنجره در الگوریتم فشرده‌سازی دلتا که توسط \fIgit gc \-\-aggressive\fR استفاده می‌شود\&. مقدار پیش‌فرض آن ۲۵۰ است که اندازه پنجره بسیار تهاجمی‌تری نسبت به پیش‌فرض \fB\-\-window\fR با مقدار ۱۰ است\&. .sp برای جزئیات بیشتر، مستندات گزینه \fB\-\-window\fR در \fBgit-repack\fR(1) را ببینید\&. .RE .PP gc\&.auto .RS 4 هنگامی که تقریباً بیش از این تعداد شیء آزاد در مخزن وجود داشته باشد، \fBgit\fR \fBgc\fR \fB\-\-auto\fR آن‌ها را بسته‌بندی می‌کند\&. برخی دستورات Porcelain هر از چند گاهی از این دستور برای انجام یک جمع‌آوری سبک داده‌های بلااستفاده (garbage collection) استفاده می‌کنند\&. مقدار پیش‌فرض ۶۷۰۰ است\&. .sp تنظیم این مقدار روی صفر نه تنها بسته‌بندی خودکار بر اساس تعداد اشیاء آزاد را غیرفعال می‌کند، بلکه سایر روش‌های مکاشفه‌ای که \fBgit\fR \fBgc\fR \fB\-\-auto\fR برای تشخیص نیاز به کار استفاده می‌کند (مانند \fBgc\&.autoPackLimit\fR) را نیز غیرفعال می‌سازد\&. .RE .PP gc\&.autoPackLimit .RS 4 هنگامی که بیش از این تعداد بسته بدون فایل نشانه‌گذاری \fB*\&.keep\fR در مخزن وجود داشته باشد، \fBgit\fR \fBgc\fR \fB\-\-auto\fR آن‌ها را در یک بسته بزرگتر ادغام می‌کند\&. مقدار پیش‌فرض ۵۰ است\&. تنظیم آن روی ۰ این قابلیت را غیرفعال می‌کند\&. تنظیم \fBgc\&.auto\fR روی ۰ نیز این ویژگی را غیرفعال خواهد کرد\&. .sp متغیر پیکربندی \fBgc\&.bigPackThreshold\fR را در ادامه ببینید\&. در صورت استفاده، بر چگونگی عملکرد محدودیت بسته‌بندی خودکار تأثیر می‌گذارد\&. .RE .PP gc\&.autoDetach .RS 4 باعث می‌شود \fBgit\fR \fBgc\fR \fB\-\-auto\fR در صورت پشتیبانی سیستم، بلافاصله مقدار خروجی را برگرداند و در پس‌زمینه اجرا شود\&. مقدار پیش‌فرض true است\&. این متغیر در صورتی که \fBmaintenance\&.autoDetach\fR تنظیم نشده باشد، به عنوان جایگزین عمل می‌کند\&. .RE .PP gc\&.bigPackThreshold .RS 4 اگر غیر صفر باشد، هنگام اجرای \fBgit\fR \fBgc\fR، تمام بسته‌های غیر باطله (non\-cruft) بزرگتر از این حد نگه داشته می‌شوند\&. این کار بسیار شبیه به \fB\-\-keep\-largest\-pack\fR است، به جز اینکه تمامی بسته‌های غیر باطله واجد شرایط نگه داشته می‌شوند، نه فقط بزرگترین بسته\&. مقدار پیش‌فرض صفر است\&. پسوندهای رایج \fIk\fR، \fIm\fR یا \fIg\fR پشتیبانی می‌شوند\&. .sp توجه داشته باشید که اگر تعداد بسته‌های نگه‌داشته‌شده بیشتر از gc\&.autoPackLimit باشد، این متغیر پیکربندی نادیده گرفته شده و تمام بسته‌ها به جز بسته پایه مجدداً بسته‌بندی می‌شوند\&. پس از این، تعداد بسته‌ها باید به زیر gc\&.autoPackLimit برسد و gc\&.bigPackThreshold دوباره اعمال شود\&. .sp اگر مقدار حافظه تخمین‌زده‌شده برای اجرای روان \fBgit\fR \fBrepack\fR در دسترس نباشد و \fBgc\&.bigPackThreshold\fR تنظیم نشده باشد، بزرگترین بسته نیز مستثنی خواهد شد (این معادل اجرای \fBgit\fR \fBgc\fR با گزینه \fB\-\-keep\-largest\-pack\fR است)\&. .RE .PP gc\&.writeCommitGraph .RS 4 اگر true باشد، هنگام اجرای \fBgit-gc\fR(1) فایل commit\-graph بازنویسی می‌شود\&. در هنگام استفاده از \fBgit\fR \fBgc\fR \fB\-\-auto\fR، اگر نگهداری مخزن لازم باشد، گراف کامیت به‌روز خواهد شد\&. مقدار پیش‌فرض true است\&. برای جزئیات \fBgit-commit-graph\fR(1) را ببینید\&. .RE .PP gc\&.logExpiry .RS 4 اگر فایل gc\&.log وجود داشته باشد، \fBgit\fR \fBgc\fR \fB\-\-auto\fR محتوای آن را چاپ کرده و با وضعیت صفر خارج می‌شود، مگر اینکه سن آن فایل بیشتر از \fIgc\&.logExpiry\fR باشد\&. مقدار پیش‌فرض "1\&.day" است\&. برای روش‌های دیگر تعیین مقدار، \fBgc\&.pruneExpire\fR را ببینید\&. .RE .PP gc\&.packRefs .RS 4 اجرای \fBgit\fR \fBpack\-refs\fR در یک مخزن، آن را برای نسخه‌های گیت قبل از ۱.۵.۱.۲ روی پروتکل‌های انتقال ساده مانند HTTP غیرقابل کلون می‌کند\&. این متغیر مشخص می‌کند که آیا \fIgit gc\fR دستور \fBgit\fR \fBpack\-refs\fR را اجرا کند یا خیر\&. این گزینه می‌تواند روی \fBnotbare\fR تنظیم شود تا در تمام مخازن غیر bare فعال شود، یا می‌تواند یک مقدار بولی باشد\&. مقدار پیش‌فرض \fBtrue\fR است\&. .RE .PP gc\&.cruftPacks .RS 4 اشیاء غیرقابل‌دسترس را در یک بسته باطله (cruft pack - نگاه کنید به \fBgit-repack\fR(1)) به جای اشیاء آزاد ذخیره می‌کند\&. مقدار پیش‌فرض \fBtrue\fR است\&. .RE .PP gc\&.maxCruftSize .RS 4 محدود کردن اندازه بسته‌های باطله (cruft) جدید هنگام بسته‌بندی مجدد\&. در صورت تعیین همزمان با \fB\-\-max\-cruft\-size\fR، گزینه خط فرمان اولویت دارد\&. گزینه \fB\-\-max\-cruft\-size\fR از \fBgit-repack\fR(1) را ببینید\&. .RE .PP gc\&.pruneExpire .RS 4 هنگامی که \fIgit gc\fR اجرا می‌شود، دستور \fIprune \-\-expire 2\&.weeks\&.ago\fR (و در صورت استفاده از بسته‌های cruft از طریق \fBgc\&.cruftPacks\fR یا \fB\-\-cruft\fR، دستور \fIrepack \-\-cruft \-\-cruft\-expiration 2\&.weeks\&.ago\fR) را فراخوانی می‌کند\&. با این متغیر پیکربندی می‌توانید مهلت تنفس را تغییر دهید\&. مقدار "now" ممکن است برای غیرفعال کردن این دوره و هرس فوری اشیاء غیرقابل‌دسترس استفاده شود، و "never" برای لغو کلی هرس به کار می‌رود\&. این ویژگی به جلوگیری از آسیب دیدن مخزن هنگام اجرای همزمان \fIgit gc\fR با فرآیند دیگری که در حال نوشتن روی مخزن است کمک می‌کند؛ بخش «نکات (NOTES)» در \fBgit-gc\fR(1) را ببینید\&. .RE .PP gc\&.worktreePruneExpire .RS 4 هنگامی که \fIgit gc\fR اجرا می‌شود، \fIgit worktree prune \-\-expire 3\&.months\&.ago\fR را فراخوانی می‌کند\&. این متغیر پیکربندی می‌تواند برای تعیین مهلت متفاوت استفاده شود\&. مقدار "now" می‌تواند برای غیرفعال کردن مهلت و هرس فوری \fB$GIT_DIR/worktrees\fR به کار رود، یا "never" می‌تواند برای لغو هرس استفاده شود\&. .RE .PP gc\&.reflogExpire, gc\&.\&.reflogExpire .RS 4 دستور \fIgit reflog expire\fR مدخل‌های reflog قدیمی‌تر از این زمان را حذف می‌کند؛ پیش‌فرض ۹۰ روز است\&. مقدار "now" تمام مدخل‌ها را بلافاصله منقضی می‌کند و "never" به کلی مانع انقضا می‌شود\&. با قرار دادن "" (مانند "refs/stash") در میانه، تنظیمات تنها برای ارجاعاتی که با الگو مطابقت دارند اعمال می‌شود\&. .RE .PP gc\&.reflogExpireUnreachable, gc\&.\&.reflogExpireUnreachable .RS 4 دستور \fIgit reflog expire\fR مدخل‌های reflog که قدیمی‌تر از این زمان هستند و از نوک شاخه فعلی قابل دستیابی نیستند را حذف می‌کند؛ پیش‌فرض ۳۰ روز است\&. مقدار "now" تمام این مدخل‌ها را فوراً منقضی کرده و "never" انقضا را کلاً متوقف می‌کند\&. با قرار دادن "" (مانند "refs/stash") در میانه، تنظیمات تنها به ارجاعات منطبق با الگو اعمال می‌شود\&. .sp این نوع مدخل‌ها عموماً در نتیجه استفاده از \fBgit\fR \fBcommit\fR \fB\-\-amend\fR یا \fBgit\fR \fBrebase\fR ایجاد می‌شوند و کامیت‌های قبل از انجام amend یا rebase هستند\&. از آنجا که این تغییرات بخشی از پروژه فعلی نیستند، بیشتر کاربران مایلند آن‌ها را زودتر منقضی کنند، به همین دلیل پیش‌فرض آن تهاجمی‌تر از \fBgc\&.reflogExpire\fR است\&. .RE .PP gc\&.recentObjectsHook .RS 4 هنگام بررسی حذف یا عدم حذف یک شیء (چه هنگام ایجاد یک cruft pack و چه هنگام ذخیره اشیاء غیرقابل دسترس به عنوان شیء آزاد)، از پوسته (shell) برای اجرای دستور(های) مشخص‌شده استفاده می‌کند\&. خروجی آن‌ها به عنوان شناسه‌های اشیاء (object IDs) تفسیر می‌شود که گیت آن‌ها را صرف‌نظر از سن‌شان به عنوان "recent" (اخیر) در نظر می‌گیرد\&. با تلقی زمان تغییر (mtime) آن‌ها به عنوان "اکنون"، هر شیء (و فرزندان آن) که در خروجی ذکر شده باشند، بدون در نظر گرفتن سن واقعی‌شان نگه داشته می‌شوند\&. .sp خروجی باید دقیقاً شامل یک شناسه هگزادسیمال شیء در هر خط و بدون هیچ چیز دیگری باشد\&. اشیایی که در مخزن یافت نشوند نادیده گرفته می‌شوند\&. چندین قلاب (hook) پشتیبانی می‌شوند، اما همه آن‌ها باید با موفقیت به پایان برسند، در غیر این صورت عملیات (تولید بسته باطله یا باز کردن اشیاء غیرقابل دسترس) متوقف خواهد شد\&. .RE .PP gc\&.repackFilter .RS 4 هنگام بسته‌بندی مجدد، از فیلتر مشخص‌شده برای انتقال برخی اشیاء به یک فایل بسته جداگانه استفاده می‌کند\&. گزینه \fB\-\-filter=\fR\fI\fR در \fBgit-repack\fR(1) را ببینید\&. .RE .PP gc\&.repackFilterTo .RS 4 هنگام بسته‌بندی مجدد و استفاده از فیلتر (به \fBgc\&.repackFilter\fR مراجعه کنید)، مکان مشخص‌شده برای ایجاد فایل بسته‌ای که شامل اشیاء فیلترشده است استفاده می‌شود\&. \fBهشدار:\fR مکان مشخص‌شده باید قابل دسترس باشد (مثلاً با استفاده از سازوکار جایگزین‌های گیت یا alternates)، در غیر این صورت ممکن است مخزن از نظر گیت خراب تلقی شود زیرا نمی‌تواند به اشیاء موجود در آن فایل بسته دسترسی یابد\&. گزینه \fB\-\-filter\-to=\fR\fI\fR در \fBgit-repack\fR(1) و بخش \fBobjects/info/alternates\fR از \fBgitrepository-layout\fR(5) را ببینید\&. .RE .PP gc\&.rerereResolved .RS 4 سوابق ادغام‌های دارای تعارض که قبلاً حل کرده‌اید، هنگام اجرای \fIgit rerere gc\fR به مدت این تعداد روز نگهداری می‌شوند\&. همچنین می‌توانید از فرمت خواناتر "1\&.month\&.ago" و غیره استفاده کنید\&. مقدار پیش‌فرض ۶۰ روز است\&. به \fBgit-rerere\fR(1) مراجعه کنید\&. .RE .PP gc\&.rerereUnresolved .RS 4 سوابق ادغام‌های دارای تعارض که حل نکرده‌اید، هنگام اجرای \fIgit rerere gc\fR به مدت این تعداد روز نگهداری می‌شوند\&. همچنین می‌توانید از مقادیر خواناتر مانند "1\&.month\&.ago" و غیره استفاده کنید\&. مقدار پیش‌فرض ۱۵ روز است\&. به \fBgit-rerere\fR(1) مراجعه کنید\&. .RE .SH "نکات (NOTES)" .sp دستور \fIgit gc\fR تلاش فراوانی می‌کند تا اشیایی را که در هر کجای مخزن شما ارجاع داده شده‌اند حذف نکند\&. به‌ویژه، نه تنها اشیاء ارجاع‌شده توسط شاخه‌ها و برچسب‌های فعلی شما را نگه می‌دارد، بلکه اشیاء ارجاع‌شده توسط نمایه (index)، شاخه‌های ردیابی از راه دور (remote\-tracking branches)، لاگ‌های ارجاع یا reflogs (که ممکن است به کامیت‌هایی در شاخه‌هایی که بعداً بازنویسی یا اصلاح شده‌اند ارجاع دهند) و هر چیز دیگری در فضای نام refs/* را نیز حفظ می‌کند\&. توجه داشته باشید یادداشتی (از نوع ایجادشده با \fIgit notes\fR) که به یک شیء پیوست شده است، نقشی در زنده نگه داشتن آن شیء ایفا نمی‌کند\&. اگر انتظار دارید برخی از اشیاء حذف شوند اما نشده‌اند، تمام آن مکان‌ها را بررسی کنید و تصمیم بگیرید که آیا در مورد شما حذف آن ارجاعات منطقی است یا خیر\&. .sp از سوی دیگر، هنگامی که \fIgit gc\fR همزمان با فرآیند دیگری اجرا می‌شود، این خطر وجود دارد که شیئی را حذف کند که فرآیند دیگر از آن استفاده می‌کند اما هنوز ارجاعی به آن ایجاد نکرده است\&. این امر ممکن است باعث شکست فرآیند دیگر شود یا اگر فرآیند دیگر بعداً ارجاعی به شیء حذف‌شده اضافه کند، موجب خرابی مخزن گردد\&. گیت دو ویژگی دارد که این مشکل را به طور چشمگیری کاهش می‌دهد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} هر شیئی با زمان تغییر (mtime) جدیدتر از تاریخ \fB\-\-prune\fR به همراه هر آنچه از آن قابل دستیابی است نگه داشته می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} اکثر عملیاتی که شیئی را به پایگاه‌داده اضافه می‌کنند، در صورتی که شیء از قبل وجود داشته باشد، زمان تغییر آن را به‌روز می‌کنند تا مورد شماره ۱ اعمال شود\&. .RE .sp با این حال، این ویژگی‌ها راه‌حل کاملی نیستند، بنابراین کاربرانی که دستورات را به صورت همزمان اجرا می‌کنند، باید مقداری از خطر خرابی (که در عمل کم به نظر می‌رسد) را بپذیرند\&. .SH "قلاب‌ها (HOOKS)" .sp دستور \fIgit gc \-\-auto\fR قلاب (hook) با نام \fIpre\-auto\-gc\fR را اجرا خواهد کرد\&. برای اطلاعات بیشتر به \fBgithooks\fR(5) مراجعه کنید\&. .SH "همچنین ببینید (SEE ALSO)" .sp \fBgit-prune\fR(1) \fBgit-reflog\fR(1) \fBgit-repack\fR(1) \fBgit-rerere\fR(1) .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)