اذا كنت مطور ويب او من المتهمين بهذا المجال فبالتأكيد سمعت ب Github من قبل.
لذلك سنجاوب فى هذه المقالة على سؤال ماهو Github وفيما يستخدم.
محتوي المقال
ماهو مصطلح Git
لفهم GitHub ، يجب أن تفهم اولًا مصطلح Git. Git هو نظام للتحكم في الإصدار Version Control مفتوح المصدر تم انشاءه بواسطة Linus Trovalds ، وهو نفس الشخص الذي أنشأ Linux. يشبه Git أنظمة التحكم في الإصدار الأخرى ، مثل CVS و Mercurial على سبيل المثال لا الحصر.
يتم استخدام Version Control فى الاساس لتنظيم العمل على المشاريع البرمجية.
حيث يتيح استراتيجية صحيحة لتطوير المشروع من قبل افراد الفريق دون التعارض فيما بينهم حتى لا تضيع تعديلات اي منهم.
فتتيح نظم التحكم فى الإصدار مثل Git وضع المشروع فى مستودع مركزي يكون عليه اخر التعديلات , وعندما يريد اي عضو من الفريق التعديل على المشروع يقوم بسحب اخر نسخة والتعديل عليها ثم وضعها مره اخرى فى المستودع.
وكذلك الاشخاص الذين لا علاقة لهم بتطوير المشروع بامكانهم تنزيل اي اصدار من المشروع لاستخدامه.
Git هو نظام التحكم في الإصدار المفضل لمعظم المطورين ، لأنه يتميز بمزايا متعددة مقارنة بالأنظمة الأخرى المتاحة. حيث يقوم بتخزين تغييرات الملف بشكل أكثر كفاءة ويضمن تكامل الملف بشكل أفضل. إذا كنت مهتمًا بمعرفة التفاصيل ، تحتوي صفحة Git Basics على شرح شامل حول كيفية عمل Git هنا.
ماهو Github.com
Github هى منصة ضخمة لاستضافة الاكواد المفتوحة المصدر ومشاركة هذه الاكواد مع المطورين الاخرين والتحكم فيها ومراقبتها وتنقيحها.
وهي شركة تابعة لشركة Microsoft ، حيث استحوذت ميكروسوفت عليها في عام 2018 مقابل 7.5 مليار دولار.
طبقًا لاحصائيات من مايو 2019 ، أبلغت GitHub عن وجود أكثر من 37 مليون مستخدم وأكثر من 100 مليون مستودع (بما في ذلك ما لا يقل عن 28 مليون مستودع عام) ، مما يجعلها أكبر مجموعة من الاكواد المصدرية في العالم.
لماذا استخدم Github
كمطور برمجيات تحتاج إلى بروفيل لعرض اعمالك على الانترنت ولا يوجد افضل من Github لمشاركة مشاريعك مفتوحة المصدر.
والتى تدل على خبرك بلغة برمجية معين فمثلًا إذا كنت مطور PHP وقمت بمشاركة مشاريع مفتوحة المصدر مبنية على PHP فان هذا يعتبر مؤشر جيد لك فى نظر اصحاب العمل.
فببساطة Github يعتبر سيرة ذاتية بشكل عملى.
سنتعرض تاليًا للمفاهيم مهمة ستواجهك فى موقع Github
مفاهيم فى جيت هب Github
Repository
الترجمة الحرفية لها المخزن او المستودع ويتم اختصاره ب Repo
هو مكان يتم تخزين كافة الملفات الخاصة بمشروع معين فيه. كل مشروع له مخزن او repo خاص به ، ويمكنك الوصول إليه باستخدام عنوان URL فريد.
على سبيل المثال : https://github.com/amrelarabi/English-Arbic-Translator
Forking a Repo
“Forking” هو عندما تنشئ مشروعًا جديدًا يستند إلى مشروع آخر موجود بالفعل. هذه ميزة رائعة تشجع بشكل كبير على مواصلة تطوير البرامج والمشاريع الأخرى. إذا وجدت مشروعًا على GitHub ترغب في المساهمة فيه ، فيمكنك اجراء تفرع للمشروع وإجراء التغييرات التي تريدها وإطلاق المشروع المعدل كمشروع جديد فى Repo مختلف.
وعند التحديث يتم اضافة التحديثات الجديدة من قبل او قبل اعضاء فريقك على الRepo الجديد.
Pull Requests
لقد قمت بعمل fork لمشروع معين ، وقمت بتحديثات كبيرة على المشروع ، وتريد أن يتعرف المطورون الأصليون على هذه التحديثات – ربما حتى يتم تضمينه في المشروع / المستودع الرسمي.
يمكنك القيام بذلك عن طريق إنشاء طلب سحب Pull Request. حيث يمكن لمؤلفي المشروع الأصليين الاطلاع على عملك ، ثم اختيار قبول أو عدم قبوله في المشروع الرسمي.
عندما تصدر طلب سحب ، يوفر GitHub وسيلة مثالية لك ولصاحب المشروع الرئيسي للتواصل.
التواصل الاجتماعى بين الاعضاء
ربما يكون جانب التواصل الاجتماعي في GitHub هو أقوى ميزاته ، حيث يتيح للمشاريع أن تنمو بسرعة ويتيح للجميع عرض اعمالهم.
حيث لكل مستخدم على GitHub ملفه الشخصي كنوع من أنواع السيرة الذاتية ، حيث يعرض عملك السابق ومساهماتك في المشاريع أخرى عن طريق طلبات السحب Pull Requests.
يمكن كذلك مناقشة مراجعات المشروع علانية ، بحيث يمكن لمجموعة من الخبراء المساهمة بالمعرفة والتعاون للبدء في المشروع.
Changelogs
وتعنى سجل التغييرات حيث عندما يتعاون العديد من الأشخاص في مشروع ما ، يكون من الصعب تتبع المراجعات – من قام بتغيير ماذا ومتى وأين يتم تخزين هذه الملفات. يحل GitHub هذه المشكلة عن طريق تتبع جميع التغييرات التي تم دفعها إلى المستودع.
خدامات اخرى تقدمها شركة Github
محرر Atom
وهو محرر مفتوح المصدر من تطوير شركة Github يتميز بواجهة سهلة وبالطبع يدعم استخدم Github ويمكنك تنزيله من هنا.
صفحات Github
Github pages تمكنك من انشاء صفحة ويب لمشروعك او مؤسستك بمنتهى السهولة ويمكنك الاستفادة من الخدمة من هنا.
حيث توفر لك الخدمة مساحة تخزين لموقعك ويتم استضافته على سيرفرات github.
تتيح الخدمة العديد من القوالب الجاهزة للاستخدام مما يجعل عملية انشاء الموقع عدة دقائق فقط.
حزمة الطلاب الخاصة بالطلاب Student Package
اذا كنت طالب يمكنك الاستفادة من هذه الحزمة الرائعة حيث تتيح الحزمة العديد من الخدمات المدفوعة بشكل مجانى للطلاب.
تشمل هذه الخدمات ادوات وبرامج مدفوعة مثل JetBrains الذى يحتوي مجموعة كبيرة من برامج التطوير مثل برنامج pycharm.
كما يمكنك الحصول على دومين مجانى من خلال شركة Name او Namecheap.
ويوجد الكثير من الادوات الاخرى المميزة ويمكنك معرفتها من هنا.