'\" t .\" Title: git-lfs-prune .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Manual: \ \& .\" Source: \ \& .\" Language: Persian .\" .TH "GIT\-LFS\-PRUNE" "1" "" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" git-lfs-prune \- حذف فایل‌های قدیمی LFS از حافظه محلی .SH "خلاصه دستور (SYNOPSIS)" .sp .nf .fam C \fBgit lfs prune\fP [\fIگزینه‌ها\fR] .fam .fi .SH "توضیحات (DESCRIPTION)" .sp نسخه‌های محلی فایل‌های LFS قدیمی را حذف کرده و بدین ترتیب فضای دیسک را آزاد می‌کند. عملکرد Prune به این صورت است که تمام اشیاء ذخیره‌شده محلی را شمارش کرده و سپس هر موردی را که حداقل توسط یکی از موارد زیر ارجاع داده نشده باشد، حذف می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} نسخه بررسی‌شده فعلی (current checkout) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} تمام stashهای موجود .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} یک \*(Aqشاخه اخیر\*(Aq؛ به بخش «فایل‌های اخیر (RECENT FILES)» مراجعه کنید .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} یک \*(Aqکامیت اخیر\*(Aq در شاخه فعلی یا شاخه‌های اخیر؛ به بخش «فایل‌های اخیر (RECENT FILES)» مراجعه کنید .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} کامیتی که ارسال (push) نشده است؛ به بخش «فایل‌های ارسال‌نشده LFS (UNPUSHED LFS FILES)» مراجعه کنید .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} هر نسخه بررسی‌شده دیگری در درخت‌های کاری؛ به git\-worktree(1) مراجعه کنید .RE .sp به طور کلی، prune فایل‌هایی را حذف می‌کند که در حال حاضر از آن‌ها استفاده نمی‌کنید و \*(Aqاخیر\*(Aq نیستند، مشروط بر اینکه ارسال شده باشند؛ به این معنی که نسخه محلی تنها نسخه موجود نباشد. .sp لاگ ارجاعات (reflog) در نظر گرفته نمی‌شود و فقط کامیت‌ها بررسی می‌شوند. بنابراین اشیاء LFS که فقط توسط کامیت‌های یتیم ارجاع داده شده‌اند همیشه حذف می‌شوند. .sp نکته: اگر چندین مخزن مختلف دارید که از یک دایرکتوری ذخیره‌سازی سفارشی مشترک استفاده می‌کنند، نباید \f(CRgit lfs prune\fP را اجرا کنید؛ برای جزئیات بیشتر درباره گزینه \f(CRlfs.storage\fP به git\-lfs\-config(5) مراجعه کنید. .sp در پیکربندی Git یا در یک فایل \f(CR.lfsconfig\fP، می‌توانید \f(CRlfs.fetchexclude\fP را با فهرستی از مسیرها که با کاما از هم جدا شده‌اند تنظیم کنید. اگر \f(CRlfs.fetchexclude\fP تعریف شده باشد، آن‌گاه هر فایل Git LFS که مسیر آن با یکی از موارد موجود در آن فهرست مطابقت داشته باشد هرس خواهد شد، مگر اینکه توسط یک stash یا یک کامیت ارسال‌نشده ارجاع داده شده باشد. تطبیق مسیرها با استفاده از تطبیق نویسه‌های عمومی (wildcard) مطابق با gitignore(5) انجام می‌شود. .SH "گزینه‌ها (OPTIONS)" .sp \f(CR\-d\fP, \f(CR\-\-dry\-run\fP .RS 4 عملاً چیزی را حذف نمی‌کند، فقط گزارش می‌دهد که چه کارهایی انجام می‌شد. .RE .sp \f(CR\-f\fP, \f(CR\-\-force\fP .RS 4 تمام اشیاء به جز اشیاء ارسال‌نشده، از جمله اشیاء مورد نیاز برای ارجاعات فعلی بررسی‌شده را هرس می‌کند. مستلزم گزینه \f(CR\-\-recent\fP است. .RE .sp \f(CR\-\-recent\fP .RS 4 حتی اشیایی را که معمولاً توسط گزینه‌های پیکربندی مشخص‌شده در ادامه در بخش «فایل‌های اخیر» نگهداری می‌شوند، هرس می‌کند. .RE .sp \f(CR\-c\fP, \f(CR\-\-verify\-remote\fP .RS 4 پیش از حذف، با مخزن دوردست (remote) ارتباط برقرار کرده و بررسی می‌کند که نسخه‌هایی از فایل‌های در دسترس که قرار است حذف شوند، قطعاً در دوردست وجود داشته باشند. به بخش «تایید دوردست (VERIFY REMOTE)» مراجعه کنید. .RE .sp \f(CR\-\-no\-verify\-remote\fP .RS 4 در صورتی که lfs.pruneverifyremotealways در تنظیمات فعال شده باشد، تایید دوردست را غیرفعال می‌کند. به بخش «تایید دوردست (VERIFY REMOTE)» مراجعه کنید. .RE .sp \f(CR\-\-verify\-unreachable\fP .RS 4 هنگام استفاده از \f(CR\-\-verify\-remote\fP، با مخزن دوردست ارتباط برقرار کرده و اشیاء غیرقابل‌دسترس را نیز بررسی می‌کند. به بخش «تایید دوردست (VERIFY REMOTE)» مراجعه کنید. .RE .sp \f(CR\-\-no\-verify\-unreachable\fP .RS 4 در صورتی که lfs.pruneverifyunreachablealways در تنظیمات فعال شده باشد، تایید دوردست فایل‌های غیرقابل‌دسترس را غیرفعال می‌کند. به بخش «تایید دوردست (VERIFY REMOTE)» مراجعه کنید. .RE .sp \f(CR\-\-when\-unverified=\fP .RS 4 زمانی که \f(CR\-\-verify\-remote\fP نتواند شیئی را در دوردست تایید کند، اجرای عملیات متوقف می‌شود (halt) یا حذف اشیاء تاییدشده ادامه می‌یابد (continue). به بخش «تایید دوردست (VERIFY REMOTE)» مراجعه کنید. .RE .sp \f(CR\-v\fP, \f(CR\-\-verbose\fP .RS 4 گزارش جزئیات کامل مواردی که حذف می‌شوند یا حذف خواهند شد را ارائه می‌دهد. .RE .SH "فایل‌های اخیر (RECENT FILES)" .sp دستور Prune فایل‌های LFS ارجاع‌شده توسط کامیت‌های \*(Aqاخیر\*(Aq را حذف نمی‌کند، تا در صورت تمایل بتوانید مجدداً بدون نیاز به دانلود از آن‌ها استفاده کنید. تعریف \*(Aqاخیر\*(Aq برگرفته از تعریفی است که توسط git\-lfs\-fetch(1) برای دانلود اشیاء اخیر با گزینه \f(CR\-\-recent\fP استفاده می‌شود، همراه با یک آفست از تعدادی روز (به صورت پیش‌فرض ۳ روز) برای اطمینان از اینکه فایل‌های دانلودشده همیشه برای چند روز نگهداری می‌شوند. .sp تنظیمات git\-config(1) که این رفتار را کنترل می‌کنند عبارتند از: .sp \f(CRlfs.pruneoffsetdays\fP .RS 4 تعداد روزهای اضافی اضافه‌شده به تنظیمات واکشی اخیر هنگام استفاده از آن‌ها برای تصمیم‌گیری در مورد زمان هرس. بنابراین برای اینکه یک ارجاع به اندازه کافی برای هرس شدن قدیمی در نظر گرفته شود، باید به اندازه این تعداد روز از قدیمی‌ترین ارجاعی که از طریق \f(CRgit lfs fetch \-\-recent\fP دانلود می‌شود، قدیمی‌تر باشد. فقط زمانی استفاده می‌شود که تنظیمات مربوط به \*(Aqdays\*(Aq برای fetch recent غیرصفر باشد. پیش‌فرض ۳ روز است. .RE .sp \f(CRlfs.fetchrecentrefsdays\fP, \f(CRlfs.fetchrecentremoterefs\fP, \f(CRlfs.fetchrecentcommitsdays\fP .RS 4 این موارد معنایی مشابه با git\-lfs\-fetch(1) همراه با گزینه \f(CR\-\-recent\fP دارند و به عنوان پایه‌ای برای آفست بالا استفاده می‌شوند. هر چیزی که خارج از این بازه آفست‌شده قرار گیرد، به اندازه کافی برای هرس شدن قدیمی در نظر گرفته می‌شود. اگر مقدار روز صفر باشد، آن شرط به هیچ‌وجه برای نگهداری اشیاء استفاده نمی‌شود و آن‌ها هرس خواهند شد. .RE .SH "فایل‌های ارسال‌نشده LFS (UNPUSHED LFS FILES)" .sp هنگامی که تنها نسخه یک فایل LFS به صورت محلی باشد و همچنان از هر ارجاعی در دسترس باشد، آن فایل صرف‌نظر از اینکه چقدر قدیمی است، هرگز هرس نخواهد شد. .sp برای تشخیص اینکه آیا یک فایل LFS ارسال (push) شده است یا خیر، تفاوت بین ارجاعات محلی و دوردست را بررسی می‌کنیم؛ در جاهایی که ارجاع محلی جلوتر باشد، هر فایل LFS ارجاع‌شده در آن کامیت‌ها ارسال‌نشده است و حذف نخواهد شد. این روش کار می‌کند زیرا قلاب pre\-push مربوط به LFS همیشه اطمینان حاصل می‌کند که فایل‌های LFS قبل از به‌روزرسانی شاخه دوردست، ارسال شده باشند. .sp برای اینکه بدانید کدام دوردست برای مقاصد هرس کردن به عنوان \*(Aqارسال‌شده\*(Aq در نظر گرفته می‌شود، به بخش «مخزن دوردست پیش‌فرض (DEFAULT REMOTE)» مراجعه کنید. .SH "تایید دوردست (VERIFY REMOTE)" .sp گزینه \f(CR\-\-verify\-remote\fP با مخزن دوردست ارتباط برقرار می‌کند تا اطمینان حاصل کند هر فایل در دسترس LFS که قرار است حذف شود، قبل از حذف واقعی دارای نسخه در دوردست باشد. .sp معمولاً بررسی انجام‌شده توسط بخش «فایل‌های ارسال‌نشده LFS» برای اطمینان از ارسال فایل‌ها کافی است، اما اگر می‌خواهید با صرف هزینه پردازشی بیشتر اطمینان مضاعف حاصل کنید، می‌توانید کاری کنید که prune واقعاً با API دوردست ارتباط برقرار کرده و وجود فایل‌هایی را که می‌خواهید به صورت محلی حذف کنید بررسی نماید. برای آگاهی از اینکه کدام دوردست بررسی می‌شود، به بخش «مخزن دوردست پیش‌فرض (DEFAULT REMOTE)» مراجعه کنید. .sp می‌توانید با تنظیم \f(CRlfs.pruneverifyremotealways\fP روی true این رفتار را به حالت پیش‌فرض تبدیل کنید. .sp علاوه بر هزینه پردازشی ارتباط با مخزن دوردست، استفاده از این گزینه همچنین نیازمند آن است که prune بین فایل‌های کاملاً غیرقابل‌دسترس (مانند فایل‌هایی که به نمایه اضافه شده‌اند اما هرگز کامیت نشده‌اند، یا فقط توسط کامیت‌های یتیم ارجاع داده شده‌اند) و فایل‌هایی که هنوز ارجاع داده می‌شوند اما توسط کامیت‌های قابل هرس هستند، تفاوت قائل شود. این امر باعث می‌شود فرآیند prune زمان بیشتری ببرد. .sp اگر می‌خواهید اشیاء غیرقابل‌دسترس را نیز تایید کنید، گزینه \f(CR\-\-verify\-unreachable\fP را تنظیم نمایید. .sp می‌توانید با تنظیم \f(CRlfs.pruneverifyunreachablealways\fP روی true بررسی اشیاء غیرقابل‌دسترس را به صورت پیش‌فرض فعال کنید. .sp به طور پیش‌فرض، اگر فایلی قابل تایید نباشد، \f(CR\-\-verify\-remote\fP اجرای عملیات را متوقف می‌کند. گزینه \f(CR\-\-when\-unverified=continue\fP را تنظیم کنید تا اجرا متوقف نشود بلکه حذف تمامی اشیاء قابل تایید ادامه یابد. .SH "مخزن دوردست پیش‌فرض (DEFAULT REMOTE)" .sp هنگام شناسایی «فایل‌های ارسال‌نشده LFS» و انجام «تایید دوردست»، معمولاً از یک دوردست واحد یعنی \*(Aqorigin\*(Aq به عنوان ارجاع استفاده می‌شود. این دوردست معتبر و رسمی تلقی می‌شود؛ حتی اگر از چندین دوردست استفاده می‌کنید، احتمالاً می‌خواهید نسخه‌های محلی خود را تا زمانی که به آن دوردست نرسیده‌اند نگه دارید. \*(Aqorigin\*(Aq به طور پیش‌فرض استفاده می‌شود زیرا معمولاً یک مخزن مرکزی اصلی است، یا انشعاب (fork) شما از آن \- در هر دو حالت یک نسخه پشتیبان دوردست معتبر از کار شماست. اگر origin وجود نداشته باشد، به طور پیش‌فرض هیچ چیزی هرس نخواهد شد زیرا همه چیز به عنوان \*(Aqارسال‌نشده\*(Aq تلقی می‌شود. .sp می‌توانید مخزن دوردست را از طریق git config تغییر دهید: \f(CRlfs.pruneremotetocheck\fP. این مقدار را روی نام دوردست دیگری تنظیم کنید تا به جای \*(Aqorigin\*(Aq آن مورد بررسی شود. .SH "همچنین ببینید (SEE ALSO)" .sp git\-lfs\-fetch(1), gitignore(5). .sp بخشی از مجموعه git\-lfs(1).