| GIT-BACKFILL(1) | دستورات عمومی کاربر | GIT-BACKFILL(1) |
نام (NAME)
git-backfill - دانلود اشیای گمشده در کلونهای کمعمق یا جزیی
خلاصه دستور (SYNOPSIS)
git backfill [--min-batch-size=<n>] [--[no-]sparse] [--[no-]include-edges] [<revision-range>]
توضیحات (DESCRIPTION)
کلونهای جزئی بدون بلاب (Blobless partial clones) با استفاده از git clone --filter=blob:none ایجاد میشوند و سپس مخزن محلی را به گونهای پیکربندی میکنند که کلاینت گیت از دانلود اشیاء blob خودداری کند، مگر اینکه برای یک عملیات محلی مورد نیاز باشند. این در ابتدا بدین معناست که کلون و دریافتهای بعدی (fetches)، کامیتها و درختهای در دسترس را دانلود میکنند اما هیچ blobای دانلود نمیشود. عملیات بعدی که اشارهگر HEAD را تغییر میدهند، مانند git checkout یا git merge، ممکن است برای تکمیل عملیات خود نیاز به دانلود blobهای گمشده داشته باشند.
در بدترین حالتها، دستوراتی که تفاضل (diff) بلابها را محاسبه میکنند، مانند git blame، بسیار کند میشوند زیرا برای تامین شیء ناموجود به محض نیاز دستور گیت، blobهای گمشده را در قالب درخواستهای تکبلابی دانلود میکنند. این امر منجر به درخواستهای دانلود متعدد میشود و سرور گیت امکان ارائه فشردهسازی دلتا (delta compression) روی آن اشیاء را نخواهد داشت.
دستور git backfill روشی را برای کاربر فراهم میکند تا از گیت درخواست کند blobهای گمشده را (با فیلترهای اختیاری) دانلود کند، به طوری که blobهای گمشدهای که نسخههای پیشین فایلها را نشان میدهند بتوانند بهصورت دستهای دانلود شوند. دستور backfill تلاش میکند تا با گروهبندی blobهایی که در یک مسیر یکسان قرار دارند، این درخواست را بهینهسازی کند که امید میرود منجر به فشردهسازی دلتای مناسب در packfile ارسالشده توسط سرور شود.
به این ترتیب، git backfill سازوکاری برای تقسیم یک کلون بزرگ به بخشهای کوچکتر ارائه میدهد. شروع با یک کلون جزئی بدون بلاب با git clone --filter=blob:none و سپس اجرای git backfill در مخزن محلی، راهکاری فراهم میآورد تا به جای دانلود کل مخزن در زمان کلون کردن، تمامی اشیاء قابل دسترس از طریق چند فراخوانی شبکه کوچکتر دانلود شوند.
بهطور پیشفرض، git backfill تمام blobهای قابل دسترس از کامیت HEAD را دانلود میکند. این مجموعه میتواند با استفاده از گزینههای مختلف زیر محدود یا گسترش یابد.
این دستور آزمایشی است. رفتار آن ممکن است در آینده تغییر کند.
گزینهها (OPTIONS)
--min-batch-size=<n>
--sparse, --no-sparse
--include-edges, --no-include-edges
<revision-range>
شما همچنین میتوانید از گزینههای محدودکننده کامیت که برای git-rev-list(1) قابل فهم هستند مانند --first-parent، --since یا مشخصکنندههای مسیر (pathspecs) استفاده کنید.
بیشتر گزینههای --filter=<spec> با هدف git backfill همخوانی ندارند و کار نمیکنند، اما فیلتر sparse:<oid> تعبیه شده است تا مجموعهای متمرکز از مسیرها را برای دانلود فراهم کند که متمایز از گزینه --sparse است.
همچنین ببینید (SEE ALSO)
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |