'\" t .\" Title: git-maintenance .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: دستورات عمومی کاربر .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-MAINTENANCE" "1" "2026\-06\-29" "Git 2\&.55\&.0" "دستورات عمومی کاربر" .\" ----------------------------------------------------------------- .\" * 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 .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-maintenance \- اجرای وظایف بهینه‌سازی داده‌های مخزن گیت .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit maintenance\fR run [] \fIgit maintenance\fR start [\-\-scheduler=] \fIgit maintenance\fR (stop|register|unregister) [] \fIgit maintenance\fR is\-needed [] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp اجرای وظایف جهت بهینه‌سازی داده‌های مخزن گیت، افزایش سرعت سایر دستورات گیت و کاهش فضای ذخیره‌سازی مورد نیاز برای مخزن\&. .sp دستورات گیت که داده‌ها را به مخزن اضافه می‌کنند، مانند \fBgit\fR \fBadd\fR یا \fBgit\fR \fBfetch\fR، برای یک تجربه کاربری پاسخگو بهینه‌سازی شده‌اند\&. این دستورات زمانی را صرف بهینه‌سازی داده‌های گیت نمی‌کنند، زیرا چنین بهینه‌سازی‌هایی متناسب با اندازه کل مخزن مقیاس‌پذیر هستند، در حالی که این دستورات کاربری هر کدام یک عملیات نسبتاً کوچک را انجام می‌دهند\&. .sp دستور \fBgit\fR \fBmaintenance\fR انعطاف‌پذیری لازم را برای چگونگی بهینه‌سازی مخزن گیت فراهم می‌کند\&. .SH "زیردستورها (SUBCOMMANDS)" .PP run .RS 4 اجرای یک یا چند وظیفه نگهداری\&. اگر یک یا چند گزینه \fB\-\-task\fR مشخص شده باشد، آن وظایف به همان ترتیب اجرا می‌شوند\&. در غیر این صورت، وظایف بر اساس اینکه کدام گزینه‌های پیکربندی \fBmaintenance\&.\fR\fI\fR\fB\&.enabled\fR برابر با true هستند تعیین می‌شوند\&. به‌طور پیش‌فرض، فقط \fBmaintenance\&.gc\&.enabled\fR برابر با true است\&. .RE .PP start .RS 4 شروع اجرای نگهداری روی مخزن جاری\&. این دستور همان به‌روزرسانی‌های پیکربندی را مانند زیردستور \fBregister\fR انجام می‌دهد، سپس زمان‌بند پس‌زمینه را به‌روزرسانی می‌کند تا دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-scheduled\fR به‌صورت ساعتی اجرا شود\&. .RE .PP stop .RS 4 متوقف کردن زمان‌بندی نگهداری پس‌زمینه\&. مخزن جاری از فهرست مخازن تحت نگهداری حذف نمی‌شود، تا در صورت راه‌اندازی مجدد نگهداری پس‌زمینه در آینده مشکلی پیش نیاید\&. .RE .PP register .RS 4 مقداردهی اولیه مقادیر پیکربندی گیت به‌گونه‌ای که هرگونه نگهداری زمان‌بندی‌شده روی این مخزن شروع به اجرا کند\&. این دستور مخزن را به متغیر پیکربندی \fBmaintenance\&.repo\fR در پیکربندی سراسری کاربر جاری، یا پیکربندی مشخص‌شده با گزینه \-\-config\-file اضافه می‌کند و برخی از مقادیر توصیه‌شده را برای \fBmaintenance\&.\fR\fI\fR\fB\&.schedule\fR فعال می‌سازد\&. وظایفی که فعال می‌شوند برای اجرا در پس‌زمینه بدون اختلال در فرآیندهای پیش‌زمینه ایمن هستند\&. .sp زیردستور \fBregister\fR همچنین در صورتی که مقدار پیکربندی \fBmaintenance\&.strategy\fR پیش‌تر تنظیم نشده باشد، آن را روی \fBincremental\fR تنظیم می‌کند\&. راهبرد \fBincremental\fR از زمان‌بندی زیر برای هر وظیفه نگهداری استفاده می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBgc\fR: غیرفعال\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBcommit\-graph\fR: ساعتی\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBprefetch\fR: ساعتی\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBloose\-objects\fR: روزانه\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBincremental\-repack\fR: روزانه\&. .RE .sp دستور \fBgit\fR \fBmaintenance\fR \fBregister\fR همچنین با تنظیم \fBmaintenance\&.auto\fR \fB=\fR \fBfalse\fR در مخزن جاری، نگهداری پیش‌زمینه را غیرفعال می‌کند\&. این تنظیم پیکربندی پس از اجرای دستور \fBgit\fR \fBmaintenance\fR \fBunregister\fR نیز باقی خواهد ماند\&. .RE .PP unregister .RS 4 حذف مخزن جاری از نگهداری پس‌زمینه\&. این دستور فقط مخزن را از فهرست پیکربندی‌شده حذف می‌کند و مانع از اجرای فرآیندهای نگهداری پس‌زمینه نمی‌شود\&. .sp زیردستور \fBunregister\fR اگر مخزن جاری از قبل ثبت نشده باشد، خطایی گزارش خواهد کرد\&. از گزینه \fB\-\-force\fR استفاده کنید تا حتی زمانی که مخزن جاری ثبت نشده است، وضعیت موفقیت‌آمیز بازگردانده شود\&. .RE .PP is\-needed .RS 4 بررسی اینکه آیا نگهداری نیاز به اجرا دارد یا خیر بدون اینکه واقعاً آن را اجرا کند\&. در صورت نیاز به اجرای نگهداری با کد وضعیت 0 و در غیر این صورت با 1 خارج می‌شود\&. در حالت ایده‌آل همراه با فلگ \fI\-\-auto\fR استفاده می‌شود\&. .sp اگر یک یا چند گزینه \fB\-\-task\fR مشخص شده باشد، آن وظایف به همان ترتیب بررسی می‌شوند\&. در غیر این صورت، وظایف بر اساس اینکه کدام گزینه‌های پیکربندی \fBmaintenance\&.\fR\fI\fR\fB\&.enabled\fR برابر با true هستند تعیین می‌شوند\&. به‌طور پیش‌فرض، فقط \fBmaintenance\&.gc\&.enabled\fR برابر با true است\&. .RE .SH "وظایف (TASKS)" .PP commit\-graph .RS 4 وظیفه \fBcommit\-graph\fR فایل‌های \fBcommit\-graph\fR را به صورت افزایشی به‌روزرسانی می‌کند و سپس تأیید می‌کند که داده‌های نوشته‌شده صحیح هستند\&. نوشتن افزایشی برای اجرا در کنار فرآیندهای همزمان گیت ایمن است، زیرا فایل‌های \fB\&.graph\fR موجود در فایل قبلی \fBcommit\-graph\-chain\fR را منقضی نمی‌کند\&. آن‌ها در یک اجرای بعدی بر اساس تاخیر انقضا حذف خواهند شد\&. .RE .PP prefetch .RS 4 وظیفه \fBprefetch\fR دایرکتوری اشیاء را با آخرین اشیاء از تمام ریموت‌های ثبت‌شده به‌روزرسانی می‌کند\&. برای هر ریموت، یک دستور \fBgit\fR \fBfetch\fR اجرا می‌شود\&. مشخصات ارجاع (refspec) پیکربندی‌شده اصلاح می‌شود تا تمام ارجاعات درخواستی در \fBrefs/prefetch/\fR قرار گیرند\&. همچنین، تگ‌ها به‌روزرسانی نمی‌شوند\&. .sp این کار برای جلوگیری از اختلال در شاخه‌های ردیابی از دور انجام می‌شود\&. کاربران نهایی انتظار دارند این ارجاعات بدون تغییر باقی بمانند مگر اینکه خودشان یک fetch را آغاز کنند\&. با این حال، با وظیفه پیش‌واکشی (prefetch)، اشیاء لازم برای تکمیل یک fetch واقعی در آینده از قبل دریافت شده و fetch واقعی را سریع‌تر می‌کند\&. در حالت ایده‌آل، این عملیات فقط به یک به‌روزرسانی در مجموعه‌ای از شاخه‌های ردیابی از دور بدون هیچ‌گونه انتقال شیء تبدیل خواهد شد\&. .sp پیکربندی \fBremote\&.\fR\fI\fR\fB\&.skipFetchAll\fR می‌تواند برای مستثنی کردن یک ریموت خاص از پیش‌واکشی استفاده شود\&. .RE .PP gc .RS 4 پاکسازی فایل‌های غیرضروری و بهینه‌سازی مخزن محلی\&. واژه "GC" مخفف "garbage collection" (جمع‌آوری زباله) است، اما این وظیفه عملیات کوچک بسیاری را انجام می‌دهد\&. این وظیفه می‌تواند برای مخازن بزرگ پرهزینه باشد، زیرا تمام اشیاء گیت را در یک فایل پک منفرد بسته‌بندی مجدد (repack) می‌کند\&. همچنین می‌تواند در برخی موقعیت‌ها مخل باشد، زیرا داده‌های قدیمی را حذف می‌کند\&. برای جزئیات بیشتر در مورد جمع‌آوری زباله در گیت به \fBgit-gc\fR(1) مراجعه کنید\&. .RE .PP loose\-objects .RS 4 وظیفه \fBloose\-objects\fR اشیاء سست را پاکسازی کرده و آن‌ها را در فایل‌های پک قرار می‌دهد\&. برای جلوگیری از شرایط رقابتی با دستورات همزمان گیت، یک فرآیند دو مرحله‌ای را دنبال می‌کند\&. ابتدا، هر شیء سستی را که از قبل در یک فایل پک وجود دارد حذف می‌کند؛ فرآیندهای همزمان گیت به‌جای شیء سست، داده‌های شیء را در فایل پک بررسی می‌کنند\&. دوم، یک فایل پک جدید (که با "loose\-" شروع می‌شود) حاوی دسته‌ای از اشیاء سست ایجاد می‌کند\&. .sp اندازه دسته به‌طور پیش‌فرض پنجاه هزار شیء است تا از طولانی شدن بیش از حد کار در مخزنی با اشیاء سست زیاد جلوگیری شود\&. از گزینه پیکربندی \fBmaintenance\&.loose\-objects\&.batchSize\fR برای تنظیم این اندازه استفاده کنید، از جمله مقدار \fB0\fR برای حذف محدودیت\&. .sp وظیفه \fBgc\fR اشیاء غیرقابل دسترس را به عنوان اشیاء سست می‌نویسد تا در مرحله بعدی پاکسازی شوند، تنها در صورتی که دوباره به یک فایل پک اضافه نشوند؛ به همین دلیل توصیه نمی‌شود که هر دو وظیفه \fBloose\-objects\fR و \fBgc\fR را همزمان فعال کنید\&. .RE .PP incremental\-repack .RS 4 وظیفه \fBincremental\-repack\fR دایرکتوری اشیاء را با استفاده از قابلیت \fBmulti\-pack\-index\fR مجدداً بسته‌بندی می‌کند\&. برای جلوگیری از شرایط رقابتی با دستورات همزمان گیت، یک فرآیند دو مرحله‌ای را دنبال می‌کند\&. ابتدا دستور \fBgit\fR \fBmulti\-pack\-index\fR \fBexpire\fR را فراخوانی می‌کند تا فایل‌های پکی را که توسط فایل \fBmulti\-pack\-index\fR ارجاع داده نشده‌اند حذف کند\&. دوم، دستور \fBgit\fR \fBmulti\-pack\-index\fR \fBrepack\fR را فراخوانی می‌کند تا چندین فایل پک کوچک را انتخاب کرده و آن‌ها را در یک فایل پک بزرگتر بسته‌بندی مجدد کند، و سپس ورودی‌های \fBmulti\-pack\-index\fR را که به فایل‌های پک کوچک ارجاع می‌دهند به‌روزرسانی کند تا به فایل پک جدید ارجاع دهند\&. این کار آن فایل‌های پک کوچک را برای حذف در اجرای بعدی دستور \fBgit\fR \fBmulti\-pack\-index\fR \fBexpire\fR آماده می‌سازد\&. انتخاب فایل‌های پک کوچک به گونه‌ای است که اندازه مورد انتظار فایل پک بزرگ حداقل برابر با اندازه دسته باشد؛ به گزینه \fB\-\-batch\-size\fR برای زیردستور \fBrepack\fR در \fBgit-multi-pack-index\fR(1) مراجعه کنید\&. اندازه پیش‌فرض دسته صفر است، که یک حالت خاص برای تلاش در جهت بسته‌بندی مجدد تمام فایل‌های پک در یک فایل پک واحد است\&. .RE .PP pack\-refs .RS 4 وظیفه \fBpack\-refs\fR فایل‌های ارجاع سست را جمع‌آوری کرده و آن‌ها را در یک فایل واحد گردآوری می‌کند\&. این کار عملیاتی را که نیاز به پیمایش در میان ارجاعات متعدد دارند سرعت می‌بخشد\&. برای اطلاعات بیشتر به \fBgit-pack-refs\fR(1) مراجعه کنید\&. .RE .PP reflog\-expire .RS 4 وظیفه \fBreflog\-expire\fR هرگونه ورودی در reflog را که قدیمی‌تر از آستانه انقضا باشد حذف می‌کند\&. برای اطلاعات بیشتر به \fBgit-reflog\fR(1) مراجعه کنید\&. .RE .PP rerere\-gc .RS 4 وظیفه \fBrerere\-gc\fR عملیات جمع‌آوری زباله را برای ورودی‌های کهنه در حافظه پنهان rerere فراخوانی می‌کند\&. برای اطلاعات بیشتر به \fBgit-rerere\fR(1) مراجعه کنید\&. .RE .PP worktree\-prune .RS 4 وظیفه \fBworktree\-prune\fR درخت‌های کاری کهنه یا خراب را حذف می‌کند\&. برای اطلاعات بیشتر به \fBgit-worktree\fR(1) مراجعه کنید\&. .RE .SH "گزینه‌ها (OPTIONS)" .PP \-\-auto .RS 4 هنگامی که با زیردستور \fBrun\fR ترکیب شود، وظایف نگهداری را تنها در صورت برآورده شدن آستانه‌های معین اجرا می‌کند\&. برای مثال، وظیفه \fBgc\fR زمانی اجرا می‌شود که تعداد اشیاء سست از عدد ذخیره‌شده در تنظیم پیکربندی \fBgc\&.auto\fR فراتر رود، یا زمانی که تعداد فایل‌های پک از تنظیم پیکربندی \fBgc\&.autoPackLimit\fR بیشتر شود\&. با گزینه \fB\-\-schedule\fR سازگار نیست\&. هنگامی که با زیردستور \fBis\-needed\fR ترکیب شود، بررسی می‌کند که آیا آستانه‌های مورد نیاز برآورده شده‌اند یا خیر، بدون اینکه واقعاً نگهداری را اجرا کند\&. .RE .PP \-\-schedule .RS 4 هنگامی که با زیردستور \fBrun\fR ترکیب شود، وظایف نگهداری را تنها در صورت برآورده شدن شرایط زمانی معین اجرا می‌کند، همان‌طور که توسط مقدار پیکربندی \fBmaintenance\&.\fR\fI\fR\fB\&.schedule\fR برای هر \fI\fR مشخص شده است\&. این مقدار پیکربندی تعداد ثانیه‌ها از آخرین باری که آن وظیفه اجرا شده است را طبق مقدار پیکربندی \fBmaintenance\&.\fR\fI\fR\fB\&.lastRun\fR مشخص می‌کند\&. وظایفی که آزمایش می‌شوند آن‌هایی هستند که توسط گزینه(های) \fB\-\-task=\fR\fI\fR ارائه شده‌اند یا آن‌هایی که مقدار \fBmaintenance\&.\fR\fI\fR\fB\&.enabled\fR آن‌ها روی true تنظیم شده است\&. .RE .PP \-\-quiet .RS 4 عدم گزارش پیشرفت یا سایر اطلاعات در \fBstderr\fR\&. .RE .PP \-\-task= .RS 4 اگر این گزینه یک یا چند بار مشخص شود، تنها وظایف مشخص‌شده به همان ترتیب مشخص اجرا می‌شوند\&. اگر هیچ آرگومان \fB\-\-task=\fR\fI\fR مشخص نشده باشد، تنها وظایفی که \fBmaintenance\&.\fR\fI\fR\fB\&.enabled\fR آن‌ها روی \fBtrue\fR پیکربندی شده است در نظر گرفته می‌شوند\&. برای فهرست مقادیر پذیرفته‌شده \fI\fR به بخش \fITASKS\fR مراجعه کنید\&. .RE .PP \-\-scheduler=auto|crontab|systemd\-timer|launchctl|schtasks .RS 4 هنگامی که با زیردستور \fBstart\fR ترکیب شود، زمان‌بند را برای اجرای ساعتی، روزانه و هفتگی دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR مشخص می‌کند\&. مقادیر ممکن برای \fI\fR عبارتند از \fBauto\fR، \fBcrontab\fR (در POSIX)، \fBsystemd\-timer\fR (در لینوکس)، \fBlaunchctl\fR (در macOS) و \fBschtasks\fR (در ویندوز)\&. هنگامی که \fBauto\fR مشخص شده باشد، از زمان‌بند مناسب مخصوص پلتفرم استفاده می‌شود؛ در لینوکس، \fBsystemd\-timer\fR در صورت وجود استفاده می‌شود، در غیر این صورت \fBcrontab\fR\&. پیش‌فرض \fBauto\fR است\&. .RE .SH "عیب‌یابی (TROUBLESHOOTING)" .sp دستور \fBgit\fR \fBmaintenance\fR برای ساده‌سازی الگوهای نگهداری مخزن طراحی شده است و در عین حال زمان انتظار کاربر را در طول دستورات گیت به حداقل می‌رساند\&. انواع گزینه‌های پیکربندی برای سفارشی‌سازی این فرآیند در دسترس هستند\&. گزینه‌های پیش‌فرض نگهداری بر روی عملیاتی تمرکز دارند که به سرعت تکمیل می‌شوند، حتی در مخازن بزرگ\&. .sp ممکن است کاربران در مواردی متوجه شوند که وظایف زمان‌بندی‌شده نگهداری به همان تناوبی که در نظر گرفته شده بود اجرا نمی‌شوند\&. هر دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR یک قفل بر روی پایگاه‌داده اشیاء مخزن ایجاد می‌کند، و این امر مانع از اجرای سایر دستورات همزمان \fBgit\fR \fBmaintenance\fR \fBrun\fR روی همان مخزن می‌شود\&. بدون این تدبیر امنیتی، فرآیندهای همزمان می‌توانند مخزن را در وضعیتی غیرقابل پیش‌بینی رها کنند\&. .sp زمان‌بندی نگهداری پس‌زمینه فرآیندهای \fBgit\fR \fBmaintenance\fR \fBrun\fR را به‌صورت ساعتی اجرا می‌کند\&. هر اجرا وظایف "hourly" (ساعتی) را اجرا می‌کند\&. در نیمه‌شب، آن فرآیند وظایف "daily" (روزانه) را نیز اجرا می‌کند\&. در نیمه‌شب اولین روز هفته، آن فرآیند وظایف "weekly" (هفتگی) را نیز اجرا می‌کند\&. یک فرآیند واحد بر روی هر مخزن ثبت‌شده تکرار می‌شود و وظایف زمان‌بندی‌شده را برای آن تناوب زمانی انجام می‌دهد\&. فرآیندها در یک دقیقه تصادفی از هر ساعت برای هر کلاینت زمان‌بندی می‌شوند تا بار ترافیکی که ممکن است چند کلاینت ایجاد کنند (مثلاً ناشی از پیش‌واکشی) پخش شود\&. بسته به تعداد مخازن ثبت‌شده و اندازه آن‌ها، این فرآیند ممکن است بیش از یک ساعت طول بکشد\&. در این حالت، چندین دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR ممکن است به‌طور همزمان بر روی یک مخزن اجرا شوند و بر سر قفل پایگاه‌داده اشیاء تداخل ایجاد کنند\&. این امر منجر به عدم اجرای یکی از دو وظیفه می‌شود\&. .sp اگر متوجه شدید که تکمیل برخی از بازه‌های نگهداری بیش از یک ساعت طول می‌کشد، کاهش پیچیدگی وظایف نگهداری خود را مد نظر قرار دهید\&. برای مثال، وظیفه \fBgc\fR بسیار کندتر از وظیفه \fBincremental\-repack\fR است\&. با این حال، این امر به بهای یک پایگاه‌داده اشیاء کمی بزرگتر تمام می‌شود\&. انتقال وظایف سنگین‌تر را به تناوب‌های زمانی کمتر مد نظر قرار دهید\&. .sp کاربران باتجربه ممکن است زمان‌بندی وظایف نگهداری خود را با استفاده از برنامه‌ای متفاوت از آنچه از طریق \fBgit\fR \fBmaintenance\fR \fBstart\fR و گزینه‌های پیکربندی گیت موجود است در نظر بگیرند\&. این کاربران باید از قفل پایگاه‌داده اشیاء و نحوه رفتار دستورات همزمان \fBgit\fR \fBmaintenance\fR \fBrun\fR آگاه باشند\&. علاوه بر این، دستور \fBgit\fR \fBgc\fR نباید با دستورات \fBgit\fR \fBmaintenance\fR \fBrun\fR ترکیب شود\&. دستور \fBgit\fR \fBgc\fR پایگاه‌داده اشیاء را تغییر می‌دهد اما قفل را به همان روشی که \fBgit\fR \fBmaintenance\fR \fBrun\fR انجام می‌دهد اعمال نمی‌کند\&. در صورت امکان، از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-task=gc\fR به‌جای \fBgit\fR \fBgc\fR استفاده کنید\&. .sp بخش‌های زیر سازوکارهای تعبیه‌شده برای اجرای نگهداری پس‌زمینه توسط \fBgit\fR \fBmaintenance\fR \fBstart\fR و نحوه سفارشی‌سازی آن‌ها را شرح می‌دهند\&. .SH "نگهداری پس‌زمینه در سیستم‌های پازیکس (POSIX)" .sp سازوکار استاندارد برای زمان‌بندی وظایف پس‌زمینه در سیستم‌های POSIX ابزار cron(8) است\&. این ابزار دستورات را بر اساس یک زمان‌بندی مشخص اجرا می‌کند\&. فهرست جاری وظایف زمان‌بندی‌شده توسط کاربر را می‌توان با اجرای \fBcrontab\fR \fB\-l\fR پیدا کرد\&. زمان‌بندی نوشته‌شده توسط \fBgit\fR \fBmaintenance\fR \fBstart\fR شبیه به این است: .sp .if n \{\ .RS 4 .\} .nf # BEGIN GIT MAINTENANCE SCHEDULE # The following schedule was created by Git # Any edits made in this region might be # replaced in the future by a Git command\&. 0 1\-23 * * * "//git" \-\-exec\-path="/" for\-each\-repo \-\-config=maintenance\&.repo maintenance run \-\-schedule=hourly 0 0 * * 1\-6 "//git" \-\-exec\-path="/" for\-each\-repo \-\-config=maintenance\&.repo maintenance run \-\-schedule=daily 0 0 * * 0 "//git" \-\-exec\-path="/" for\-each\-repo \-\-config=maintenance\&.repo maintenance run \-\-schedule=weekly # END GIT MAINTENANCE SCHEDULE .fi .if n \{\ .RE .\} .sp .sp کامنت‌ها به عنوان ناحیه‌ای برای نشانه‌گذاری زمان‌بندی نوشته‌شده توسط گیت استفاده می‌شوند\&. هرگونه تغییر در این ناحیه با \fBgit\fR \fBmaintenance\fR \fBstop\fR کاملاً حذف شده یا با \fBgit\fR \fBmaintenance\fR \fBstart\fR بازنویسی می‌شود\&. .sp ورودی \fBcrontab\fR مسیر کامل فایل اجرایی \fBgit\fR را مشخص می‌کند تا اطمینان حاصل شود که دستور \fBgit\fR اجراشده همان دستوری است که \fBgit\fR \fBmaintenance\fR \fBstart\fR با آن صادر شده است، مستقل از متغیر \fBPATH\fR\&. اگر همان کاربر \fBgit\fR \fBmaintenance\fR \fBstart\fR را با چندین فایل اجرایی Git اجرا کند، فقط آخرین فایل اجرایی استفاده می‌شود\&. .sp این دستورات از \fBgit\fR \fBfor\-each\-repo\fR \fB\-\-config=maintenance\&.repo\fR برای اجرای \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-schedule=\fR\fI\fR روی هر مخزن فهرست‌شده در گزینه پیکربندی چندمقداری \fBmaintenance\&.repo\fR استفاده می‌کنند\&. این مقادیر معمولاً از پیکربندی سراسری ویژه کاربر بارگیری می‌شوند\&. سپس فرآیند \fBgit\fR \fBmaintenance\fR با استفاده از گزینه‌های پیکربندی \fBmaintenance\&.\fR\fI\fR\fB\&.schedule\fR تعیین می‌کند که کدام وظایف نگهداری برای اجرا در هر مخزن با هر \fI\fR پیکربندی شده‌اند\&. این مقادیر از مقادیر پیکربندی سراسری یا مخزن بارگیری می‌شوند\&. .sp اگر مقادیر پیکربندی برای دستیابی به برنامه نگهداری پس‌زمینه مورد نظر شما کافی نیست، می‌توانید برنامه زمان‌بندی خود را ایجاد کنید\&. اگر \fBcrontab\fR \fB\-e\fR را اجرا کنید، یک ویرایشگر با زمان‌بندی \fBcron\fR ویژه کاربر شما بارگیری می‌شود\&. در آن ویرایشگر، می‌توانید خطوط زمان‌بندی خود را اضافه کنید\&. می‌توانید با اقتباس از زمان‌بندی پیش‌فرض فهرست‌شده در بالا شروع کنید، یا می‌توانید مستندات crontab(5) را برای تکنیک‌های پیشرفته زمان‌بندی مطالعه کنید\&. لطفاً از تکنیک‌های مسیر کامل و \fB\-\-exec\-path\fR از زمان‌بندی پیش‌فرض استفاده کنید تا مطمئن شوید که باینری‌های صحیح را در زمان‌بندی خود اجرا می‌کنید\&. .SH "نگهداری پس‌زمینه در سیستم‌های لینوکس مجهز به SYSTEMD" .sp در حالی که لینوکس از \fBcron\fR پشتیبانی می‌کند، بسته به توزیع، ممکن است \fBcron\fR یک بسته اختیاری باشد و لزوماً نصب نشده باشد\&. در توزیع‌های مدرن لینوکس، تایمرهای systemd در حال جایگزینی آن هستند\&. .sp اگر تایمرهای کاربری systemd در دسترس باشند، به عنوان جایگزین \fBcron\fR استفاده خواهند شد\&. .sp در این حالت، \fBgit\fR \fBmaintenance\fR \fBstart\fR واحدهای تایمر کاربری systemd را ایجاد کرده و تایمرها را شروع می‌کند\&. فهرست جاری وظایف زمان‌بندی‌شده کاربر را می‌توان با اجرای \fBsystemctl\fR \fB\-\-user\fR \fBlist\-timers\fR پیدا کرد\&. تایمرهای نوشته‌شده توسط \fBgit\fR \fBmaintenance\fR \fBstart\fR مشابه این هستند: .sp .if n \{\ .RS 4 .\} .nf $ systemctl \-\-user list\-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Thu 2021\-04\-29 19:00:00 CEST 42min left Thu 2021\-04\-29 18:00:11 CEST 17min ago git\-maintenance@hourly\&.timer git\-maintenance@hourly\&.service Fri 2021\-04\-30 00:00:00 CEST 5h 42min left Thu 2021\-04\-29 00:00:11 CEST 18h ago git\-maintenance@daily\&.timer git\-maintenance@daily\&.service Mon 2021\-05\-03 00:00:00 CEST 3 days left Mon 2021\-04\-26 00:00:11 CEST 3 days ago git\-maintenance@weekly\&.timer git\-maintenance@weekly\&.service .fi .if n \{\ .RE .\} .sp .sp برای هر گزینه \fB\-\-schedule=\fR\fI\fR یک تایمر ثبت می‌شود\&. .sp تعریف واحدهای systemd را می‌توان در فایل‌های زیر بررسی کرد: .sp .if n \{\ .RS 4 .\} .nf ~/\&.config/systemd/user/git\-maintenance@\&.timer ~/\&.config/systemd/user/git\-maintenance@\&.service ~/\&.config/systemd/user/timers\&.target\&.wants/git\-maintenance@hourly\&.timer ~/\&.config/systemd/user/timers\&.target\&.wants/git\-maintenance@daily\&.timer ~/\&.config/systemd/user/timers\&.target\&.wants/git\-maintenance@weekly\&.timer .fi .if n \{\ .RE .\} .sp .sp دستور \fBgit\fR \fBmaintenance\fR \fBstart\fR این فایل‌ها را بازنویسی کرده و تایمر را مجدداً با \fBsystemctl\fR \fB\-\-user\fR راه‌اندازی می‌کند، بنابراین هرگونه سفارشی‌سازی باید با ایجاد یک فایل drop\-in انجام شود، یعنی یک فایل با پسوند \fB\&.conf\fR در دایرکتوری \fB~/\&.config/systemd/user/git\-maintenance@\&.service\&.d\fR\&. .sp دستور \fBgit\fR \fBmaintenance\fR \fBstop\fR تایمرهای کاربری systemd را متوقف کرده و فایل‌های ذکرشده در بالا را حذف می‌کند\&. .sp برای جزئیات بیشتر به \fBsystemd\&.timer\fR(\fB5\fR) مراجعه کنید\&. .SH "نگهداری پس‌زمینه در سیستم‌های مک‌اواس (MACOS)" .sp در حالی که macOS از نظر فنی از \fBcron\fR پشتیبانی می‌کند، استفاده از \fBcrontab\fR \fB\-e\fR نیاز به دسترسی‌های بالاتر دارد و فرآیند اجراشده زمینه کاربری کامل ندارد\&. بدون یک زمینه کاربری کامل، Git و دستیارهای اعتبارنامه‌ای آن نمی‌توانند به اطلاعات هویتی ذخیره‌شده دسترسی پیدا کنند، بنابراین برخی از وظایف نگهداری کار نخواهند کرد\&. .sp در عوض، \fBgit\fR \fBmaintenance\fR \fBstart\fR با ابزار \fBlaunchctl\fR تعامل برقرار می‌کند، که روش پیشنهادی برای زمان‌بندی کارهای زمان‌دار در macOS است\&. زمان‌بندی نگهداری از طریق \fBgit\fR \fBmaintenance\fR (\fBstart\fR|\fBstop\fR) به برخی از قابلیت‌های \fBlaunchctl\fR نیاز دارد که فقط در macOS 10\&.11 یا بالاتر در دسترس هستند\&. .sp وظایف زمان‌بندی‌شده ویژه کاربر شما به صورت فایل‌های \fB\&.plist\fR با فرمت XML در \fB~/Library/LaunchAgents/\fR ذخیره می‌شوند\&. با استفاده از دستور زیر می‌توانید وظایفی را که در حال حاضر ثبت شده‌اند مشاهده کنید: .sp .if n \{\ .RS 4 .\} .nf $ ls ~/Library/LaunchAgents/org\&.git\-scm\&.git* org\&.git\-scm\&.git\&.daily\&.plist org\&.git\-scm\&.git\&.hourly\&.plist org\&.git\-scm\&.git\&.weekly\&.plist .fi .if n \{\ .RE .\} .sp .sp برای هر گزینه \fB\-\-schedule=\fR\fI\fR یک وظیفه ثبت می‌شود\&. برای بررسی نحوه توصیف هر زمان‌بندی توسط قالب XML، یکی از این فایل‌های \fB\&.plist\fR را در یک ویرایشگر باز کنید و عنصر \fI\fR را پس از عنصر \fI\fR\fBStartCalendarInterval\fR بررسی نمایید\&. .sp دستور \fBgit\fR \fBmaintenance\fR \fBstart\fR این فایل‌ها را بازنویسی کرده و وظایف را مجدداً در \fBlaunchctl\fR ثبت می‌کند، بنابراین هرگونه سفارشی‌سازی باید با ایجاد فایل‌های \fB\&.plist\fR خودتان با نام‌های مجزا انجام شود\&. به طور مشابه، دستور \fBgit\fR \fBmaintenance\fR \fBstop\fR وظایف را از \fBlaunchctl\fR لغو ثبت کرده و فایل‌های \fB\&.plist\fR را حذف می‌کند\&. .sp برای ایجاد سفارشی‌سازی‌های پیشرفته‌تر در وظایف پس‌زمینه خود، جهت کسب اطلاعات بیشتر به launchctl\&.plist(5) مراجعه کنید\&. .SH "نگهداری پس‌زمینه در سیستم‌های ویندوز (WINDOWS)" .sp ویندوز از \fBcron\fR پشتیبانی نمی‌کند و در عوض سیستم اختصاصی خود را برای زمان‌بندی وظایف پس‌زمینه دارد\&. دستور \fBgit\fR \fBmaintenance\fR \fBstart\fR از دستور \fBschtasks\fR برای ارسال وظایف به این سیستم استفاده می‌کند\&. می‌توانید با استفاده از برنامه زمان‌بند وظایف (Task Scheduler) همه وظایف پس‌زمینه را بررسی کنید\&. وظایف اضافه‌شده توسط Git دارای نام‌هایی به فرم \fBGit\fR \fBMaintenance\fR (\fI\fR) هستند\&. رابط گرافیکی Task Scheduler راه‌هایی برای بازرسی این وظایف دارد، اما می‌توانید وظایف را در فایل‌های XML خروجی بگیرید و جزئیات را در آنجا مشاهده کنید\&. .sp توجه داشته باشید که از آنجا که Git یک برنامه کنسولی است، این وظایف پس‌زمینه یک پنجره کنسول قابل مشاهده برای کاربر جاری ایجاد می‌کنند\&. این مورد را می‌توان به صورت دستی با انتخاب گزینه "Run whether user is logged in or not" در Task Scheduler تغییر داد\&. این تغییر نیاز به وارد کردن رمز عبور دارد، به همین دلیل است که \fBgit\fR \fBmaintenance\fR \fBstart\fR آن را به صورت پیش‌فرض انتخاب نمی‌کند\&. .sp اگر می‌خواهید وظایف پس‌زمینه را سفارشی‌سازی کنید، لطفاً نام وظایف را تغییر دهید تا فراخوانی‌های بعدی \fBgit\fR \fBmaintenance\fR (\fBstart\fR|\fBstop\fR) وظایف سفارشی شما را بازنویسی نکنند\&. .SH "پیکربندی (CONFIGURATION)" .sp تمام موارد زیر این خط در این بخش به طور گزینشی از مستندات \fBgit-config\fR(1) گنجانده شده است\&. محتوای آن همان چیزی است که در آنجا یافت می‌شود: .PP maintenance\&.auto .RS 4 این گزینه پیکربندی بولی کنترل می‌کند که آیا برخی از دستورات پس از انجام کارهای عادی خود دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR را اجرا کنند یا خیر\&. مقدار پیش‌فرض true است\&. .RE .PP maintenance\&.autoDetach .RS 4 بسیاری از دستورات گیت پس از نوشتن داده‌ها در مخزن، نگهداری خودکار را راه‌اندازی می‌کنند\&. این گزینه پیکربندی بولی کنترل می‌کند که آیا این نگهداری خودکار باید در پیش‌زمینه انجام شود یا اینکه فرآیند نگهداری باید جدا شده و در پس‌زمینه به کار خود ادامه دهد\&. .sp در صورت عدم تنظیم، مقدار \fBgc\&.autoDetach\fR به عنوان جایگزین استفاده می‌شود\&. در صورتی که هر دو تنظیم نشده باشند، مقدار پیش‌فرض true است، به این معنی که فرآیند نگهداری جدا خواهد شد\&. .RE .PP maintenance\&.strategy .RS 4 این گزینه پیکربندی رشته‌ای راهی را برای تعیین یکی از چند راهبرد توصیه‌شده برای نگهداری مخزن فراهم می‌کند\&. این بر روی وظایفی که در حین اجرای \fBgit\fR \fBmaintenance\fR \fBrun\fR اجرا می‌شوند، به شرطی که هیچ آرگومان \fB\-\-task=\fR\fI\fR ارائه نشده باشد، تأثیر می‌گذارد\&. این تنظیم بر نگهداری دستی، نگهداری خودکار و همچنین نگهداری زمان‌بندی‌شده تأثیر می‌گذارد\&. وظایفی که اجرا می‌شوند ممکن است بسته به نوع نگهداری متفاوت باشند\&. .sp راهبرد نگهداری را می‌توان با تنظیم \fBmaintenance\&.\fR\fI\fR\fB\&.enabled\fR و \fBmaintenance\&.\fR\fI\fR\fB\&.schedule\fR بیشتر تنظیم کرد\&. در صورت تنظیم، این مقادیر به‌جای مقادیر پیش‌فرض ارائه‌شده توسط \fBmaintenance\&.strategy\fR استفاده می‌شوند\&. .sp راهبردهای ممکن عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBnone\fR: این راهبرد دلالت بر این دارد که هیچ وظیفه‌ای اصلاً اجرا نمی‌شود\&. این راهبرد پیش‌فرض برای نگهداری زمان‌بندی‌شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBgc\fR: این راهبرد وظیفه \fBgc\fR را اجرا می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBgeometric\fR: این راهبرد بسته‌بندی مجدد هندسی فایل‌های پک را انجام می‌دهد و ساختارهای داده کمکی را به‌روز نگه می‌دارد\&. این راهبرد داده‌ها را در reflog منقضی می‌کند و درخت‌های کاری را که دیگر یافت نمی‌شوند حذف می‌نماید\&. هنگامی که راهبرد بسته‌بندی مجدد هندسی تصمیم به بسته‌بندی همه در یکی می‌گیرد، راهبرد یک پک ضایعات (cruft pack) برای تمام اشیاء غیرقابل دسترس تولید می‌کند\&. اشیایی که از قبل بخشی از یک پک ضایعات هستند منقضی خواهند شد\&. .sp این راهبرد بسته‌بندی مجدد یک جایگزین کامل برای راهبرد \fBgc\fR است و برای مخازن بزرگ پیشنهاد می‌شود\&. این راهبرد پیش‌فرض برای نگهداری دستی است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBincremental\fR: این تنظیم برای انجام فعالیت‌های نگهداری کوچک که هیچ داده‌ای را حذف نمی‌کنند بهینه‌سازی شده است\&. این گزینه وظیفه \fBgc\fR را زمان‌بندی نمی‌کند، بلکه وظایف \fBprefetch\fR و \fBcommit\-graph\fR را به‌صورت ساعتی، وظایف \fBloose\-objects\fR و \fBincremental\-repack\fR را به‌صورت روزانه، و وظیفه \fBpack\-refs\fR را به‌صورت هفتگی اجرا می‌کند\&. نگهداری دستی مخزن از وظیفه \fBgc\fR استفاده می‌کند\&. .RE .RE .PP maintenance\&.\&.enabled .RS 4 این گزینه پیکربندی بولی کنترل می‌کند که آیا وظیفه نگهداری با نام \fI\fR در زمانی که هیچ گزینه \fB\-\-task\fR به \fBgit\fR \fBmaintenance\fR \fBrun\fR داده نشده است اجرا شود یا خیر\&. این مقادیر پیکربندی در صورت وجود یک گزینه \fB\-\-task\fR نادیده گرفته می‌شوند\&. به‌طور پیش‌فرض، فقط \fBmaintenance\&.gc\&.enabled\fR برابر با true است\&. .RE .PP maintenance\&.\&.schedule .RS 4 این گزینه پیکربندی کنترل می‌کند که آیا \fI\fR داده‌شده در طول یک دستور \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-schedule=\fR\fI\fR اجرا شود یا خیر\&. مقدار باید یکی از موارد "hourly" (ساعتی)، "daily" (روزانه) یا "weekly" (هفتگی) باشد\&. .RE .PP maintenance\&.commit\-graph\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBcommit\-graph\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBcommit\-graph\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که تعداد کامیت‌های قابل دسترس که در فایل commit\-graph نیستند حداقل به اندازه مقدار \fBmaintenance\&.commit\-graph\&.auto\fR باشد\&. مقدار پیش‌فرض 100 است\&. .RE .PP maintenance\&.loose\-objects\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBloose\-objects\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBloose\-objects\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که تعداد اشیاء سست حداقل به اندازه مقدار \fBmaintenance\&.loose\-objects\&.auto\fR باشد\&. مقدار پیش‌فرض 100 است\&. .RE .PP maintenance\&.loose\-objects\&.batchSize .RS 4 این گزینه پیکربندی عدد صحیح حداکثر تعداد اشیاء سست نوشته‌شده در یک فایل پک را در طول وظیفه \fBloose\-objects\fR کنترل می‌کند\&. مقدار پیش‌فرض پنجاه هزار است\&. از مقدار \fB0\fR برای نشان دادن عدم وجود محدودیت استفاده کنید\&. .RE .PP maintenance\&.incremental\-repack\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBincremental\-repack\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBincremental\-repack\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که تعداد فایل‌های پکی که در multi\-pack\-index نیستند حداقل به اندازه مقدار \fBmaintenance\&.incremental\-repack\&.auto\fR باشد\&. مقدار پیش‌فرض 10 است\&. .RE .PP maintenance\&.geometric\-repack\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBgeometric\-repack\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBgeometric\-repack\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که یا فایل‌های پکی وجود دارند که برای حفظ تصاعد هندسی باید با هم ادغام شوند، یا حداقل این تعداد شیء سست وجود دارد که در یک فایل پک جدید نوشته می‌شوند\&. مقدار پیش‌فرض 100 است\&. .RE .PP maintenance\&.geometric\-repack\&.splitFactor .RS 4 این گزینه پیکربندی عدد صحیح عاملی را که برای دنباله هندسی استفاده می‌شود کنترل می‌کند\&. برای جزئیات بیشتر به گزینه \fB\-\-geometric=\fR در \fBgit-repack\fR(1) مراجعه کنید\&. مقدار پیش‌فرض \fB2\fR است\&. .RE .PP maintenance\&.reflog\-expire\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBreflog\-expire\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBreflog\-expire\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که تعداد ورودی‌های منقضی‌شده reflog در reflog مربوط به "HEAD" حداقل به اندازه مقدار \fBmaintenance\&.loose\-objects\&.auto\fR باشد\&. مقدار پیش‌فرض 100 است\&. .RE .PP maintenance\&.rerere\-gc\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBrerere\-gc\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBrerere\-gc\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، هر مقدار مثبت بیانگر این است که دستور در صورتی که دایرکتوری "rr\-cache" وجود داشته باشد و حداقل یک ورودی داشته باشد، صرف نظر از اینکه کهنه است یا خیر، اجرا خواهد شد\&. این روش ممکن است در آینده اصلاح شود\&. مقدار پیش‌فرض 1 است\&. .RE .PP maintenance\&.worktree\-prune\&.auto .RS 4 این گزینه پیکربندی عدد صحیح کنترل می‌کند که وظیفه \fBworktree\-prune\fR چند وقت یک‌بار باید به عنوان بخشی از \fBgit\fR \fBmaintenance\fR \fBrun\fR \fB\-\-auto\fR اجرا شود\&. اگر صفر باشد، وظیفه \fBworktree\-prune\fR با گزینه \fB\-\-auto\fR اجرا نخواهد شد\&. یک مقدار منفی وظیفه را مجبور می‌کند هر بار اجرا شود\&. در غیر این صورت، یک مقدار مثبت بیانگر این است که دستور باید زمانی اجرا شود که تعداد درخت‌های کاری قابل هرس از این مقدار فراتر رود\&. مقدار پیش‌فرض 1 است\&. .RE .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)