ایجاد آرشیو از مخزن گیت

پیش‌نمایش دستور

            

استفاده

git archive [گزینه‌ها]  [فایل‌ها]

مثال‌ها

git archive --format=zip HEAD > archive.zip   # Create a ZIP archive of the current commit
git archive --format=tar HEAD > archive.tar   # Create a TAR archive of the current commit
git archive --prefix=project/ HEAD > project.tar  # Create a TAR archive with prefix

دقیقاً چه می‌کند؟

دستور git archive برای ایجاد یک آرشیو (مثل فایل .zip یا .tar) از یک commit، شاخه یا تگ خاص در مخزن گیت استفاده می‌شود. این دستور به ویژه برای ایجاد نسخه‌های پشتیبان یا توزیع پروژه‌ها مفید است، زیرا می‌توان نسخه‌ای از پروژه را بدون تاریخچه گیت استخراج و به اشتراک گذاشت.

موارد کاربرد رایج

  • ایجاد یک آرشیو از آخرین commit برای اشتراک‌گذاری یا توزیع.
  • ایجاد یک آرشیو از یک شاخه یا تگ خاص برای انتشار یا پشتیبان‌گیری.
  • ایجاد یک آرشیو با پیشوند خاص برای سازماندهی فایل‌ها در داخل آرشیو.

بهترین شیوه‌ها

  • استفاده از گزینه --prefix برای سازماندهی فایل‌ها در داخل آرشیو، به ویژه برای پروژه‌های بزرگ.
  • اطمینان حاصل کنید که commit، شاخه یا تگ انتخابی همان چیزی باشد که می‌خواهید آرشیو کنید، زیرا آرشیو وضعیت دقیق مخزن را در آن نقطه زمانی منعکس خواهد کرد.
  • فرمت آرشیو را با توجه به کاربرد مورد نظر انتخاب کنید (مثلاً .zip برای توزیع آسان‌تر، .tar برای انعطاف‌پذیری بیشتر در استخراج).

محدودیت‌ها

  • فایل‌هایی که توسط گیت رهگیری نمی‌شوند را نمی‌توان در آرشیو قرار داد (ابتدا باید از دستور git add برای رهگیری فایل‌ها استفاده کنید).
  • تاریخچه گیت در آرشیو حفظ نمی‌شود؛ فقط فایل‌ها در commit، شاخه یا تگ مشخص‌شده گنجانده می‌شوند.

اشتباهات رایج

  • فراموش کردن مشخص کردن commit، شاخه یا تگ صحیح برای ایجاد آرشیو.
  • عدم استفاده از گزینه --prefix هنگام ایجاد آرشیو برای توزیع، که باعث می‌شود همه فایل‌ها در سطح ریشه آرشیو قرار گیرند.

نمای کلی

دستور git archive به شما این امکان را می‌دهد که فایل‌ها را از یک commit، شاخه یا تگ خاص در مخزن گیت به یک فایل آرشیو بسته‌بندی کنید. این ابزار برای ایجاد نسخه‌های پشتیبان یا توزیع پروژه در یک نقطه زمانی خاص مفید است. توجه داشته باشید که تاریخچه گیت در آرشیو گنجانده نمی‌شود و فقط وضعیت فایل‌ها در commit یا تگ مشخص‌شده ذخیره می‌شود.