Git هو نظام التحكم في الإصدارات الأكثر شعبية في مجال تطوير البرمجيات. إنه مفتوح المصدر ويتم صيانته بنشاط منذ عام 2005 بواسطة Linus Torvalds، المبتكر الشهير لـ Linux. اليوم، يستخدم عدد هائل من مشاريع البرمجيات (بما في ذلك المشاريع التجارية) Git لإدارة الإصدارات.
يتبع Git بنية موزعة، مما يجعله مثالاً ممتازاً لـ DVCS (Distributed Version Control System). باستخدام Git، يمكننا إدارة مستودع محلي ومستودع بعيد في نفس الوقت. في هذا الدليل، سنوضح كيفية تكوين النشر التلقائي لمشروع Git باستخدام VPS.
المتطلبات الأساسية
في هذا الدليل، سيكون هناك مستودع محلي واحد ومستودع بعيد على VPS. سيقوم المستودع المحلي بدفع التغييرات إلى المستودع البعيد. ومن المستودع البعيد، يمكننا دفع التغييرات إلى beta أو live . لتحقيق ذلك، هناك بعض المتطلبات الأساسية التي تحتاج إلى الاهتمام بها أولاً.
- جهاز محلي وخادم بعيد، كلاهما يستخدم Ubuntu كنظام تشغيل. يعرض هذا الدليل كيفية تكوين وإعداد خوادم Ubuntu.
- كلا الجهازين مهيآن باستخدام Git.
لإنشاء اتصال آمن بـ VPS، سنستخدم SSH. لحسن الحظ، يدعم Git أيضاً SSH كبروتوكول للاتصال بالمستودعات البعيدة. يستكشف هذا الدليل تكوين SSH للاتصال بالخوادم البعيدة على Ubuntu.
تكوين VPS
على خادمنا البعيد، سيكون لدينا التكوين التالي:
- الدليل المباشر: /var/www/dummy-domain.com
- مستودع الخادم: /var/repo/site.git
من الجهاز المحلي، سيقوم Git بدفع التحديثات إلى مستودع VPS. ومن مستودع VPS، سنقوم بتكوين برنامج نصي سيستخدمه Git لدفعه تلقائياً إلى الدليل المباشر. من الممكن أيضاً تكوين مستودع لإصدارات beta .
-
إنشاء المستودعات
اتصل بـ VPS وأنشئ مواقع المستودعات:
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
بعد ذلك، قم بتهيئة مستودع Git:
|
1 |
sudo git init --bare |
هنا، يوضح الخيار --bare أنه لن تكون هناك ملفات مصدر، بل فقط مكونات التحكم في الإصدار.
-
الخطافات
بعد ذلك، سنقوم بتكوين الخطافات للمستودع. يحتوي كل مستودع Git على مجلد باسم hooks. وهو يحتوي على ملفات عينة تعمل كقالب للخطافات والإجراءات المخصصة المختلفة.
وفقاً لـ Git الوثائق الرسمية، هناك ثلاثة أنواع من الخطافات:
- pre-receive: يتم تنفيذه بمجرد تلقي الخادم لطلب دفع.
- post-receive: يتم تنفيذه عند اكتمال طلب الدفع.
- update: مشابه لـ pre-receive. ومع ذلك، فإنه يتم تنفيذه مرة واحدة لكل فرع.
من موقع المستودع، قم بتشغيل الأمر ls :
|
1 |
ls -l |
قم بتغيير الدليل الحالي إلى hooks:
|
1 |
cd hooks/ |
الآن، قم بإنشاء البرنامج النصي post-receive :
|
1 |
sudo nano post-receive |
داخل البرنامج النصي، أدخل الكود التالي. تأكد من تغيير مواقع الأدلة وفقاً لذلك:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
احفظ الملف وأغلق المحرر. قم بتعيين الملف كملف قابل للتنفيذ:
|
1 |
sudo chmod +x post-receive |
الآن، في كل مرة يكتمل فيها الدفع، سينظر Git في البرنامج النصي post-receive ويضع الملفات في مكانها وفقاً لذلك.
تكوين الجهاز المحلي
الجهاز البعيد جاهز لقبول تحديثات مشروع Git الواردة. بعد ذلك، سنقوم بتكوين المستودع المحلي لاستخدام VPS كخادم Git بعيد.
لنقم بإنشاء دليل مشروع Git تجريبي:
الآن، قم بتهيئة المستودع:
|
1 |
sudo git init |
يتعين علينا الإعلان عن المسار البعيد للمستودع. هنا، سنشير إلى الموقع البعيد باسم الفرع live . بعد ذلك، قم بتشغيل الأمر التالي:
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
دعنا نختبر ذلك. قمنا بإضافة برنامج نصي شل إلى دليل المشروع:
بعد ذلك، أضف الملف إلى المشروع وقم بإجراء التزام:
|
1 2 |
sudo git add . sudo git commit -m "random commit" |
In the next command, we’ll push the project to the live server:
|
1 |
sudo git push live master |
سيتصل Git بخادم VPS باستخدام SSH. إذا تم تكوين اتصال SSH لاستخدام كلمة مرور، فسيطلب Git كلمة مرور المصادقة.
مستودع Beta
ماذا لو لم يكن من المقرر نشر المشروع في خطوة واحدة؟ ربما يتطلب الأمر مزيدًا من الاختبار داخل دليل beta directory. Using the method described so far, we can create another branch in the VPS, referred to as the beta branch.
-
تكوين فرع Beta على VPS
أولاً، نحتاج إلى إنشاء الأدلة لـ VPS. اتصل بـ VPS وأنشئ دليلاً تحت /var/www:
|
1 2 |
cd /var/www sudo mkdir beta |
الآن، نحتاج إلى مستودع Git ليعمل كفرع beta branch:
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
تهيئة المستودع:
|
1 |
sudo git init --bare |
تمامًا كما كان من قبل، قم بتنفيذ برنامج نصي post-receive script:
|
1 2 |
cd hooks sudo nano post-receive |
بعد ذلك، أدخل الكود التالي:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
احفظ الملف وأغلق المحرر. قم بتمييز post-receive كملف قابل للتنفيذ:
|
1 |
sudo chmod +x post-receive |
-
إضافة مستودع Beta على الجهاز المحلي
نحن الآن جاهزون لإضافة مستودع beta إلى مستودعنا المحلي. من داخل دليل المشروع المحلي، قم بتشغيل أمر Git التالي:
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
ها قد انتهينا! تم الآن تكوين المستودع المحلي مع مستودع beta البعيد. جرب دفع التغييرات:
|
1 2 3 |
sudo git add . sudo git commit -m "beta version" sudo git push beta master |
-
الانتقال من Beta إلى Live في VPS
دعنا نفترض أن جميع التغييرات قد تراكمت في مستودع beta . كيف تقوم بدفع التغييرات إلى مستودع live ؟ الأمر بسيط للغاية. داخل مستودع beta على VPS، نقوم بإضافة مستودع live المحلي. بعد ذلك، نقوم ببساطة بدفع إصدار beta إلى مستودع live .
اتصل بـ VPS، وقم بتشغيل الأوامر التالية:
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
بعد ذلك، يمكنك دفع إصدار beta إلى live:
|
1 |
sudo git push live master |
أفكار نهائية
يوضح هذا الدليل بنجاح كيفية تكوين واستخدام VPS كمستودع بعيد لمشروع Git الخاص بك. يمكن لـ VPS نشر أحدث الأكواد والملفات تلقائيًا دون أي عملية معقدة. كما يمكنه أيضًا العمل كمركز للتعاون بين فرق تطوير متعددة.
بمساعدة Git، يمكنك إنشاء آلية بسيطة للنشر التلقائي. ومع ذلك، لإدارة المشاريع بشكل صحيح، يوصى باستخدام شيء مثل GitLab. يعرض الدليل التالي تثبيت ونشر GitLab على VPS الذي يدير مشاريع متعددة. يمكنك أيضًا الاطلاع على كيفية إعداد خطوط أنابيب التكامل المستمر (CI) لـ GitLab على Ubuntu 20.04.
حوسبة سعيدة!















التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.