يشهد مجال البرمجة وتطوير البرمجيات نمواً متسارعاً في هذه الأيام، مما أدى إلى ارتفاع حاد في الطلب على الأدوات المستخدمة في هذا المجال. وقد أفرز ذلك بيئة تنافسية شديدة في عالم الإنترنت، حيث تتنافس برامج البرمجة وDevOps على مكانة الأكثر استخداماً في مجالها. Git واحد من هذه البرامج. ومع انتشار العمل عن بُعد بوصفه الواقع الجديد لكثير من الوظائف التي تُؤدَّى خلف شاشات الحاسوب، بات كثير من المطورين يستضيفون برامجهم بما فيها Git على خوادم بعيدة. إذا كنت في هذه الفئة وتريد إعداد خادم Git خاص بك، فأنت في المكان الصحيح.
في هذا المقال، سأشرح ما هو Git وأستعرض مزاياه وعيوبه، ثم أوضح المتطلبات اللازمة وكيفية استضافة خادم Git خاص بك. لنبدأ!
ما هو Git؟
Git هو برنامج DevOps مصمم لمساعدة المطورين والمبرمجين على إدارة مشاريعهم بأعلى كفاءة ممكنة. وأبرز وظائفه تتبع التغييرات في الكود المصدري عبر الزمن. Git مجاني ومفتوح المصدر ويتلقى تحديثات منتظمة، مما يجعله من أكثر أدوات DevOps للبرمجة سهولةً في الوصول وموثوقيةً على مستوى العالم. كل حاسوب يحتوي على نسخة من Git يعمل كمستودع كامل بسجل مستقل لجميع تغييرات الملفات. بعد قرابة ٢٠ عاماً من التطوير المستمر وأكثر من ٣٠ إصداراً، يعمل البرنامج حالياً على الإصدار 2.40.0 مع توقع إصدارات مستقبلية إضافية. الآن لنتعرف على بعض حالات استخدام Git لنفهم بشكل أوضح لماذا قد نرغب في تثبيت خادم Git من الأساس.
حالات استخدام Git
قبل التسرع في استضافة خادم Git محلي خاص بك، دعنا نستعرض أبرز حالات استخدام Git لنفهم سبب الحاجة إلى تشغيل خادم Git أصلاً.
استنساخ المستودع
يفضل كثير من المطورين إنشاء مستودع Git على الخادم لتتبع البرامج والملفات التي يعملون عليها. يتيح لك Git، من خلال عدد محدود من الأوامر، استنساخ مستودع kernel الحالي Linux واستخدامه لإنشاء سجل تغييرات منظم يقتصر على الملفات التي تهمك. العملية بسيطة، ويمكنك من خلالها إدارة المشاريع الصغيرة والكبيرة على حد سواء. تُعرف هذه العملية أيضاً بـ "التفريع"، إذ تنشئ في جوهرها فرعاً جديداً من مستودعك الحالي.
سير عمل Git
يُعدّ سير عمل Git من أبرز حالات الاستخدام التي ستعتمد عليها بمجرد إعداد خادم Git خاص بك. يمكنك استخدام خادمك المحلي لإنشاء مجموعتين من الفروع عبر عملية الاستنساخ، بحيث تمثل إحداهما المشروع بأكمله، كموقع ويب مثلاً. ثم تنشئ فرع إنتاج منفصلاً يُسجَّل فيه كل تغيير يجريه أي مطور، ويمكن اختباره قبل تطبيقه. هذا النهج متعدد الطبقات لا يرفع كفاءتك فحسب، بل يجعل تتبع مسار التطوير والتغييرات أمراً في غاية السهولة.
الدمج
هل تذكر عملية تفريع المستودع وسجل التغييرات؟ كما يوحي الاسم، الدمج هو عكس التفريع تماماً. في عملية الدمج، التي يرى كثيرون أنها الجانب الأكثر تعقيداً في Git، نعمل على إعادة بيانات فرع معين إلى المستودع الرئيسي الذي انبثق منه في الأصل. يُجرى ذلك عادةً لإنشاء خادم Git يحتوي على تقرير شامل للمشروع وسجل كامل بجميع التغييرات من مختلف الفروع في مستودع واحد منظم وسهل القراءة. فبينما يساعدك التفريع خلال مراحل العمل على تجنب الفوضى، يهدف الدمج إلى عكس ذلك وتقديم صورة واضحة وشاملة عند انتهاء المشروع أو خلال عملية تشخيص الأخطاء.
استضافة خادم Git الخاص: المزايا والعيوب
لكل أداة مزايا وعيوب يجب أن يعرفها من يريد استخدامها. في هذا القسم، سأستعرض مزايا Git وعيوبه، مع الأخذ بعين الاعتبار أن ما سيُذكر هنا ينطبق على حالة الاستضافة الذاتية تحديداً، وهو ما يدور حوله هذا الدليل بالأساس.
Git المستضاف ذاتياً: المزايا
لا تدخل لأطراف خارجية
عند استضافة Git ذاتياً، لن يتمكن من الوصول إلى ملفاتك سوى أنت والأشخاص الذين تختارهم. هذا يلغي أي تدخل خارجي غير مرغوب فيه، ويتيح لك العمل على مشروعك براحة بال. بيانتاك ستكون أكثر أماناً، وستتمكن من إعادة توجيه الموارد التي كانت مخصصة للأمان إلى أغراض أخرى.
الأمان
على صعيد الأمان، يمنحك Git مرونة كبيرة في تطبيق أفضل الممارسات واستخدام أدوات خارجية لتعزيز الحماية. وعلى الرغم من أن مستوى الأمان قد يكون أقل مقارنةً بالاستضافة المُدارة، فإن الاستضافة الذاتية تمنحك حرية شبه كاملة في تحديد مستوى الحماية الذي تريده.
مستودعات غير محدودة
هل تذكر الاستنساخ والتفريع؟ لا يوجد حد لعدد المستودعات التي يمكنك إنشاؤها في Git. هذا يجعله مناسباً جداً للمشاريع الكبيرة التي يحتاج كل فرع تطويري فيها إلى مستودع مستقل. كذلك هو خيار ممتاز للمشاريع التي تحتوي على ملفات ضخمة كالأصول ثلاثية الأبعاد والمشاريع المُنشأة بـ Unity.
Git المستضاف ذاتياً: العيوب
عبء إداري مرتفع
يمكن أن تخرج مستودعات Git عن السيطرة بسرعة. إذا قررت إعداد خادم Git على منصة مستضافة ذاتياً، فإن إدارة جميع الفروع والبيانات التعريفية قد تتحول سريعاً إلى مهمة مُرهقة. لذا، إما أن تكون دقيقاً للغاية في إدارتها، أو أن تُسند المهمة إلى مطور متمرس.
منحنى تعلم حاد
استضافة Git شيء، وإتقانه وتشغيل خادم محلي به شيء آخر تماماً. يمتلك Git واحداً من أعلى مستويات التعقيد بين أدوات DevOps المبنية على المستودعات، ويستلزم قضاء وقت طويل في تعلمه أو الاستعانة بمختص.
عدم دعم واجهة المستخدم الرسومية و Windows
هل تريد إعداد خادم Git على Windows؟ أو ربما تريد تشغيله بواجهة رسومية GUI؟ للأسف، هذا غير متاح. أنت مقيد بأنظمة التشغيل التي تعتمد على kernel نوع Linux، ولا توجد واجهة رسومية تسهل الأمور. إذا كنت تريد تثبيت خادم Git واستضافته ذاتياً، فعليك أولاً تعلم أساسيات البرمجة.
أسلوب قديم
من كل الزوايا الممكنة، يبدو أن تشغيل Git على خادم مستضاف ذاتياً بات خياراً قديماً تتفوق عليه طرق أكثر كفاءة. من أبرز هذه البدائل تشغيل GitLab، لذا قبل أن تقرر إعداد خادم Git خاص بك، اطّلع على GitLab أيضاً!
المتطلبات اللازمة لتثبيت خادم Git
لنستعرض بسرعة المتطلبات اللازمة لإعداد خادم Git واستضافته بنفسك. لاستضافة Git، تحتاج فقط إلى مكوّنين: خادم، ونسخة من Git، مع قدر بسيط من المعرفة البرمجية لتنفيذ عملية الضبط.
خادم Git
أما عن الخادم، فيمكنك استخدام جهاز كمبيوتر آخر تملكه، أو خوادم مخصصة من مزودين تقليديين، أو إن كنت تفضّل التحكم المباشر، فاستخدم VPS السحابي (خادم افتراضي خاص). امتلاك VPS يتيح لك إدارة الخادم وتشغيل نسخة Git في آنٍ واحد. تجدر الإشارة إلى أن خادمك يحتاج إلى توزيعة Linux لإعداد خادم Git. تقدّم Cloudzy مجموعة واسعة من Linux VPS الخدمات تشمل أكثر من ١٠ توزيعات Linux موثوقة، منها Ubuntu وDebian وCentOS وKali وOpenSUSE. بدءاً من ٤٫٩٥ دولار فقط شهرياً، احصل على خادم Linux موثوق قريب من موقعك لضمان جودة اتصال عالية، واستخدمه لاستضافة خادم Git وتشغيله بنفسك!
احصل على VPS اقتصادي أو متميز يعمل بنظام Linux لاستضافة موقعك الإلكتروني أو سطح المكتب البعيد، بأفضل الأسعار المتاحة. يعمل VPS على Linux KVM لكفاءة أعلى، ويستند إلى أجهزة قوية مع تخزين NVMe SSD لسرعة أكبر.
اقرأ المزيدنسخة Git
إعداد خادم Git عملية مباشرة، وسنتولى ذلك تلقائياً ضمن خطوات التثبيت. وكما ذكرنا، Git مفتوح المصدر ومجاني تماماً، وهذا ما يجعله مفضلاً على كثير من البرامج الأخرى المخصصة للتطوير وإدارة المستودعات البرمجية. الآن بعد أن توفرت المتطلبات، لنبدأ مباشرةً بدليلنا خطوة بخطوة لتثبيت خادم Git على خادم Linux الخاص بك!
تثبيت خادم Git على Linux (دليل خطوة بخطوة)
الخطوة ١: تنزيل Git وتثبيته
هذه هي الخطوة الأولى في عملية تثبيت خادم Git. في طرفية توزيعة Linux التي اخترتها، أدخل الأمر التالي لبدء تنزيل Git:
التوزيعات المبنية على Ubuntu/Debian:
sudo apt install git
التوزيعات المبنية على Arch:
sudo pacman -S git
التوزيعات المبنية على RHEL:
sudo dnf install git
سيقوم هذا الأمر بتنزيل Git وتثبيته على خادم Linux الخاص بك. انتظر حتى تكتمل العملية.
الخطوة ٢: تسجيل خادم Git وضبطه
إن كان لديك خادم محلي على جهاز آخر، شغّله. وإن كنت تمتلك VPS، استخدم SSH أو RDP للاتصال بخادم Linux الخاص بك عن بُعد. سنقوم الآن بضبط خادم Git للعمل عن بُعد، وذلك بإنشاء حساب Git باستخدام الأمر التالي:
ssh username@address
sudo useradd git
ثم أدخل هذا الأمر للتبديل إلى حسابك الجديد:
su git
تهدف هذه الخطوة أساساً إلى تعزيز أمان خادم Git المحلي. من خلال هذا الحساب، ستكون مدير الخادم، ويمكنك تنظيم المستخدمين المستقبليين في مجموعات بصلاحيات ومستويات وصول محددة مسبقاً.
الخطوة ٣: إنشاء مجلدات SSH و إنشاء مستودع Git على الخادم
الخطوة التالية في تثبيت خادم Git هي إنشاء مجلد SSH مخصص لحفظ المفاتيح العامة وإنشاء مستودع Git على الخادم مع طبقات أمان إضافية ومستويات وصول محددة. ابدأ بإدخال الأمر التالي:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
بعد تقييد وصول الآخرين باستخدام سطر الأوامر هذا، أدخل السطر التالي للتأكد من أن مفاتيح SSH محفوظة بأمان في مجلد authorized_keys حيث لا يمكن لأحد غيرك الوصول إليها. شغّل هذا الأمر فقط إذا لم يكن لديك ملف id_rsa.pub بالفعل:
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
أخيراً، انسخ المفتاح العام SSH الذي أنشأته لإعداد اتصال SSH جديد بأمان معزز مع خادم Git المحلي:
cd .ssh
vi authorized_keys
الخطوة الرابعة: إنشاء مجلد رئيسي
في خادم Linux، أنشئ مجلداً جديداً لحفظ جميع المستودعات التي سيستخدمها Git في مشاريعك القادمة. يمكنك التعرف على تفاصيل إدارة مستودعات Git بشكل أعمق. أدخل هذا الأمر:
mkdir directory_name
الخطوة الخامسة: أضف مشروعك!
لقد نجحت في إنشاء خادم Git وإتمام عملية التثبيت والإعداد بنجاح. كل ما تبقى هو إضافة المشاريع الإضافية بالأمر التالي:
cd parent_directory
mkdir new_project.git
ثم أدخل هذا الأمر لإضافة الأصل البعيد إلى جهازك المحلي:
git init --bare
git remote add origin name git@address:new_project.git
أخيراً، نفّذ أمر Git push للتحقق من أن كل شيء يعمل كما ينبغي:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
تهانينا، لقد نجحت في استضافة Git وإنشاء مستودع git على الخادم.
الأسئلة الشائعة
هل يمكن استضافة Git بدون خادم؟
لا. بصرف النظر عن نوع خادمك، ستحتاج دائماً إلى عتاد مادي يعمل كخادم. يمكنك استخدام GitHub كخادم سحابي لمستودعاتك، أو الاستفادة من VPS عروضنا، أو الاعتماد على خدمة استضافة خارجية أخرى.
هل يمكن تثبيت خادم Git بواجهة رسومية؟
نعم. رغم أن Git نفسه لا يتضمن واجهة رسومية، إلا أن نسخة مستقلة تُعرف بـ "Git GUI" متاحة لمن يفضلون العمل بواجهة رسومية.
هل Git مدفوع؟
لا. Git كان ولا يزال برنامجاً مجانياً ومفتوح المصدر، وهذا ما أكده مطوروه ومُصدروه الأصليون. يمكنك استخدامه أساساً لتطوير مشاريعك البرمجية، وهو في جميع الأحوال مجاني.
لماذا تستضيف خادم Git الخاص بك؟
إذا كنت تعمل على مشروع صغير بعدد محدود من المستودعات، فإن الاستضافة الذاتية توفر خصوصية وأماناً أعلى، وهذا هو الدافع الرئيسي لاختيارها. لكن مع نمو المشاريع وتزايد المستودعات، تبدأ الاستضافة الذاتية في فقدان كفاءتها.