git archive
الإدارة
تصدير ملفات commit كأرشيف zip أو tar
يكتب الأمر 'git archive' ملفات commit أو وسم أو فرع في أرشيف zip أو tar — دون السجل ودون مجلد .git. إنها الطريقة المعتادة لنشر إصدار للتنزيل. تتبع الصيغة امتداد ملف المخرجات، ويضع --prefix كل الملفات داخل مجلد.
الصيغة
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [-o <file>] <tree-ish> [<path>...][ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار
الخيارات
اختيار الخيار المناسب
archive مقابل bundle
ملفات أم سجل؟
| الأمر | يحتوي | يُستخدم لـ |
|---|---|---|
git archive | ملفات commit واحد | التنزيلات، النشر |
git bundle | commits وفروع | نقل مستودع دون اتصال |
أمثلة
ضغط إصدار بـ zip
git archive -o shop-1.0.zip v1.0ملفات v1.0 في ملف zip.
tar مع مجلد
git archive --prefix=shop/ -o shop.tar.gz HEADكل شيء داخل shop/.
مجلد واحد فقط
git archive -o docs.zip HEAD docs/مجلد docs فقط.
أمثلة على سير العمل
1
git tag -a v1.0 -m "Release"وسمه
2
git archive --prefix=shop-1.0/ -o shop-1.0.zip v1.0تصديره
حل المشكلات
بعض الملفات مفقودة
السبب: الملفات غير المتتبَّعة أو المتجاهَلة لا تُؤرشف أبدًا
سجّلها، أو تحقّق من قواعد export-ignore في .gitattributes
نصائح وأخطاء شائعة
أفضل الممارسات
- ✓أرشِف الوسوم لا الفروع، ليطابق التنزيلُ الإصدارَ.
أخطاء متكررة
- ✗توقّع وجود السجل في الأرشيف — استخدم git bundle لنقل السجل.
- ✗نسيان -o وملء الطرفية ببيانات ثنائية.
الأسئلة الشائعة
A:
نعم: وسمها export-ignore في .gitattributes.