tutorial - gitlab شرح




تصدير مستودع من خادم Gitlab إلى خادم Gitlab آخر (3)

مجرد تثبيت جديدة جديدة 6.8 Gitlab على خادم العلامة التجارية الجديدة عالية الأداء.

قبل التفكير في نسيان محفوظات المستودعات (التعليقات ، المشكلات ، إلخ ...) ، هل تعرف أحدًا طريقة تصدير بيانات المستودع من خادم Gitlab إلى خادم Gitlab آخر؟

لقد فشلت في العثور على أي شيء على الوثائق الخاصة بتصدير / ترحيل بيانات المشروع بالكامل (وليس فقط مستودع git و wiki الخاص به).


بالنسبة إلى إصدارات GitLab <8.9 ، بدون ميزة تصدير / استيراد مضمنة ، أوصي باستخدام أداة رائعة من Marcus Chmelar ، gitlab-migrator . لقد استخدمتها بنجاح عدة مرات مع إصدارات GitLab الأقدم لذا يجب عليك أيضًا. فقط كن على علم بقيودها .


بالنسبة إلى إصدارات GitLab> = 8.9 (تم إصدارها في يونيو 2016) ، يمكنك استخدام ميزة مدمجة للتصدير والاستيراد.

لاحظ أنه بالنسبة لعمليات التثبيت الحالية لـ GitLab ، يجب تمكين خيار استيراد المشروع في إعدادات التطبيق (URL: /admin/application_settings) ضمن "استيراد مصادر". يجب أن تكون مسؤولاً لتمكين وظيفة الاستيراد واستخدامها.

في ما يلي وثائق كاملة للميزة: https://gitlab.com/help/user/project/settings/import_export.md


لقد قمت بهذا بالفعل مؤخرًا ، لقد قمنا بتحديث مثيل gitlab الخاص بنا وتحتاج إلى حفظ مستودعات التخزين واستيرادها إلى التثبيت الجديد.

أولاً ، قم بإنشاء حزمة من مستودع السحب. على سبيل المثال ، لنفترض أنك سحبت أحد المستودعات وسنتصل به

للتحقق من مستودع التخزين ، استخدم git clone (دعنا نفترض أن مستودعك يقع تحت حساب الجذر وأن ipaddress هو 192.168.1.1)

git clone http://192.168.1.1/root/myrepository.git (أو تطابق بيئتك)

الآن هذه الخطوة مهمة إلى حد ما ؛ تحتاج إلى التغيير إلى دليل العمل الذي يحتوي على مجلد .git لمستودع السحب.

cd myrepository

بعد ذلك ، يمكنك إنشاء ملف حزمة:

git bundle create myrepository.bundle --all

استيراد ملف الحزمة إلى مثيل جديد من gitlab.

إنشاء 'myrepository' جديد على واجهة gitlab gui

استنساخ المستودع الفارغ ؛ دعنا نقول هذا gitlab الجديد لديه ipaddress 192.168.1.2:

git clone http:\\192.168.1.2\root\myrepository.git (أو تطابق بيئتك)

سوف تحصل على تحذيرات من استنساخ مستودع فارغ. هذا امر طبيعي.

التغيير في دليل العمل الخاص بمستودع السحب الذي تم سحبه وإجراء عملية سحب:

cd myrepository

git pull file/path/to/myrepository.bundle

هذا سوف يسحب المستودع إلى نسختك. بعد ذلك يمكنك القيام بوظيفة git ، و git ارتكاب ، ودفع git

يجب أن يعمل هذا على افتراض أن إعدادات خادم gitlab قد تم إعدادها بشكل صحيح ؛ قد تواجهك مشكلات مثل الحاجة إلى إضافة معلمة client_max_body_size في ملف nginx.conf وأيضًا "git config - http.postBuffer العالمي" لدفع الملفات الكبيرة.

هناك طريقة أخرى للقيام بذلك وهي إنشاء ملفات تصحيح لكل التزام ثم نشرها:

يتضمن ذلك القيام بـ "git format-patch -C 0badil..68elid -o patch_directory_path" والرجوع إلى نطاق كل ما تبذلونه من التزامات ودفعهم إلى دليل الإخراج ؛ هذا يجب أن يوفر لك ملف تصحيح واحد لكل التزام. التالي سيشمل git cloning المستودع الفارغ الجديد ، والتغيير في دليل العمل للنسخة وتطبيق التصحيحات على المستودع الجديد باستخدام 'git am patch_directory_path'