GIT-UPLOAD-ARCHIVE(1) Git Manual GIT-UPLOAD-ARCHIVE(1)

git-upload-archive - ارسال بایگانی به git-archive

git upload-archive <repository>

توسط git archive --remote فراخوانی می‌شود و یک بایگانی ایجادشده را از طریق پروتکل گیت به سمت دیگر ارسال می‌کند.

این دستور معمولاً مستقیماً توسط کاربر نهایی فراخوانی نمی‌شود. رابط کاربری این پروتکل در سمت git archive قرار دارد و این جفت برنامه برای دریافت یک بایگانی از یک مخزن دوردست (ریموت) به کار می‌روند.

به منظور محافظت از حریم خصوصی اشیایی که از تاریخچه حذف شده‌اند اما ممکن است هنوز هرس (prune) نشده باشند، git-upload-archive از ارائه بایگانی‌ها برای کامیت‌ها و درخت‌هایی که از طریق ارجاع‌های (refs) مخزن قابل دسترسی نیستند خودداری می‌کند. با این حال، از آنجا که محاسبه قابلیت دسترسی اشیاء از نظر محاسباتی سنگین است، git-upload-archive مجموعه‌ای سخت‌گیرانه‌تر اما با بررسی آسان‌تر از قوانین را پیاده‌سازی می‌کند:

1.کلاینت‌ها می‌توانند کامیت یا درختی را درخواست کنند که مستقیماً توسط یک ارجاع (ref) به آن اشاره شده است. برای مثال: git archive --remote=origin v1.0.
2.کلاینت‌ها می‌توانند یک زیردرخت را درون یک کامیت یا درخت با استفاده از ساختار نحوی ref:path درخواست کنند. برای مثال: git archive --remote=origin v1.0:Documentation.
3.کلاینت‌ها نباید از سایر عبارات sha1 استفاده کنند، حتی اگر نتیجه نهایی قابل دسترسی باشد. برای مثال، نه یک کامیت نسبی مانند master^ و نه یک عبارت صریح sha1 مانند abcd1234 مجاز نیستند، حتی اگر نتیجه از ارجاع‌ها قابل دسترسی باشد.

توجه داشته باشید که قانون ۳ بسیاری از مواردی را که هیچ پیامد نقض حریم خصوصی ندارند نیز ممنوع می‌کند. این قوانین در نسخه‌های آینده گیت ممکن است تغییر کنند و سروری که توسط git archive --remote به آن دسترسی پیدا می‌شود ممکن است دقیقاً از این قوانین پیروی کند یا نکند.

اگر گزینه پیکربندی uploadArchive.allowUnreachable فعال (true) باشد، این قوانین نادیده گرفته می‌شوند و کلاینت‌ها می‌توانند از عبارات دلخواه sha1 استفاده کنند. این گزینه در صورتی مفید است که حریم خصوصی اشیاء غیرقابل‌دسترس برای شما اهمیتی نداشته باشد، یا اینکه پایگاه داده اشیاء شما پیش‌تر از طریق non-smart-http برای دسترسی عمومی در دسترس قرار گرفته باشد.

<repository>

مخزنی که باید یک بایگانی tar از آن دریافت شود.

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0