git-fetch-pack - دریافت
اشیای
ناموجود از
یک مخزن
دیگر
git fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]
[--upload-pack=<git-upload-pack>]
[--depth=<n>] [--no-progress]
[-v] <repository> [<refs>...]
معمولاً
ترجیح
میدهید به
جای این
دستور، از git
fetch استفاده
کنید که یک
بستهبندی
سطح بالاتر
(wrapper) برای این
دستور است.
دستور git-upload-pack
را بر روی یک
مخزن که
احتمالاً
راه دور است
فراخوانی
میکند و از
آن
میخواهد
تا اشیای
ناموجود در
این مخزن را
ارسال
نماید تا
رأسهای
نامبرده
بهروزرسانی
شوند. فهرست
کامیتهای
موجود به
صورت محلی،
با بررسی
سلسلهمراتب
محلی refs/ به
دست میآید
و به git-upload-pack که
در سمت دیگر
در حال
اجراست
فرستاده
میشود.
اگر سمت
محلی کامیت
جد مشترکی
نداشته
باشد، این
دستور برای
تکمیل
مراجع
درخواستی
از سمت راه
دور، به
دانلود
همهچیز
تنزل
مییابد.
--all
دریافت
تمام مراجع
(refs) راه دور.
--stdin
گرفتن
فهرست
مراجع از
ورودی
استاندارد
(stdin)، هر مورد
در یک خط. اگر
علاوه بر
این گزینه،
مراجعی نیز
در خط فرمان
مشخص شده
باشند،
مراجع
ورودی
استاندارد
پس از موارد
خط فرمان
پردازش
میشوند.
اگر --stateless-rpc
همراه با
این گزینه
مشخص شود،
فهرست
مراجع باید
در قالب
بستهای (pkt-line)
باشد. هر
مرجع باید
در یک بسته
جداگانه
قرار گیرد و
فهرست باید
با یک بسته
خالیسازی
(flush packet) پایان
یابد.
-q, --quiet
ارسال
پرچم -q به git
unpack-objects؛ این کار
فرآیند
کلونسازی
را
کمتوضیحتر
میکند.
-k, --keep
روی
دادههای
دریافت شده
git unpack-objects را اجرا
نمیکند،
بلکه به جای
آن یک packfile تکی
از آن
میسازد و
در
پایگاهداده
اشیاء
ذخیره
میکند. اگر
دوبار مشخص
شود، بسته
در برابر
بازبستهبندی
(repacking) قفل
میشود.
--thin
یک بسته
«نازک» (thin)
دریافت
میکند که
اشیاء را بر
اساس
اشیایی که
در بسته
وجود
ندارند به
شکل دلتا
ثبت میکند
تا ترافیک
شبکه کاهش
یابد.
--include-tag
اگر سمت
راه دور
پشتیبانی
کند، در
صورتی که
شیء مورد
ارجاع
برچسب
دانلود
شود، اشیای
برچسبهای
نشانهدار
(annotated tags) نیز روی
همان اتصال
همراه با
سایر اشیاء
دانلود
خواهند شد.
در غیر این
صورت،
فراخواننده
باید
برچسبهایی
را که این
گزینه
دردسترس
قرار داده
است تعیین
کند.
--upload-pack=<git-upload-pack>
از این
گزینه برای
مشخص کردن
مسیر git-upload-pack در
سمت راه دور
استفاده
میشود، در
صورتی که در
$PATH شما پیدا
نشود.
نصبهای sshd
اسکریپتهای
راهاندازی
محیط کاربر
برای
شلهای
ورود (مانند
.bash_profile) را
نادیده
میگیرند و
ممکن است git
نصبشده
اختصاصی
شما در $PATH
پیشفرض
سیستم یافت
نشود.
راهکار
پیشنهادی
دیگر تنظیم
$PATH در «.bashrc»
است، اما
این پرچم
برای
افرادی است
که
نمیخواهند
با داشتن یک
فایل .bashrc سبک
بار اضافی
برای
شلهای
غیرتعاملی
ایجاد کنند
(آنها
بیشتر
تنظیمات را
در .bash_profile قرار
میدهند).
--exec=<git-upload-pack>
همانند
--upload-pack=<git-upload-pack>.
--depth=<n>
دریافت
را به
زنجیرههای
نیاکان که
بلندتر از n
نباشند
محدود
میکند.
دستور git-upload-pack
عمق ویژه 2147483647
را حتی در
صورتی که
زنجیره
نیاکانی با
این طول
وجود داشته
باشد،
نامحدود در
نظر
میگیرد.
--shallow-since=<date>
عمیقتر
یا
کوتاهتر
کردن
تاریخچه یک
مخزن
کمعمق (shallow)
برای
گنجاندن
تمام
کامیتهای
در دسترس پس
از <date>.
--shallow-exclude=<ref>
عمیقتر
یا
کوتاهتر
کردن
تاریخچه یک
مخزن
کمعمق
برای
مستثنی
کردن
کامیتهای
در دسترس از
یک شاخه یا
برچسب راه
دور
مشخصشده.
این گزینه
میتواند
چندین بار
مشخص شود.
--deepen-relative
آرگومان
--depth تعداد
کامیتها
را از مرز
کمعمق
فعلی به جای
نوک
تاریخچه هر
شاخه راه
دور مشخص
میکند.
--refetch
صرفنظر
کردن از
مذاکره
کامیتها
با سرور به
منظور
دریافت
تمام اشیای
منطبق. برای
اعمال مجدد
یک فیلتر
شیء/درخت
جدید در
کلون جزئی (partial
clone) استفاده
میشود.
--no-progress
عدم
نمایش درصد
پیشرفت.
--check-self-contained-and-connected
چاپ
خروجی "connectivity-ok"
در صورتی که
بسته
دریافتشده
خودبسنده و
متصل باشد.
-v
اجرا با
جزئیات
بیشتر (verbose).
<repository>
نشانی
اینترنتی (URL)
مخزن راه
دور.
<refs>...
رأسهای
راه دور
برای
بهروزرسانی
از آنها.
این مقدار
نسبت به $GIT_DIR
است (مانند
"HEAD"، "refs/heads/master"). در
صورت مشخص
نشدن، از
تمام
رأسهای
موجود در
سمت راه دور
بهروزرسانی
انجام
میشود.
اگر سمت
راه دور
گزینههای
uploadpack.allowTipSHA1InWant،
uploadpack.allowReachableSHA1InWant یا
uploadpack.allowAnySHA1InWant را
فعال کرده
باشد، این
مراجع
میتوانند
مقادیر
40-رقمی
هگزادسیمال
sha1 موجود در
سمت راه دور
نیز باشند.