GIT

ببساطة، يعتبر جت (GIT) نظام مجاني و مفتوح المصدر  للسيطرة على الاصدارات الموزعة للبرمجيات. تم تطويرها واطلاقها للمرة الاولى في العام ٢٠٠٥ من قبل لينوس تورفالدز (Linus Torvalds) بإستخدام لغات برمجة متعددة وهم السي (C) وبايثون (python) وبيرل (perl) و مجموعة من اوامر الشل (shell) 

تعتبر معرفة التعامل مع هذا النظام من الامور المهمة للغاية بالنسبة للمبرمجين وخصوصًا الذين يعملون في الشركات الكبرى او على  المشاريع الكبيرة  وتحديدًا تلك المشاريع التي تتطلب العمل بالتوازي مع عدد هائل من المساهمين.

الوظيفة الاساسية للنظام هي ان تقوم بتتبع الاصدارات وايجاد الفروقات بين الملفات التي يتم "دفعها" الى المخزن الذي يتم استضافته حاليا من قبل مجموعة واسعة من المواقع الالكترونية والشركات والتي توفر هذه الخدمة بصورة مجانية ومفتوحة او صورة مغلقة وخاصة.

 


 

اشهر المواقع الالكترونية التي تستظيف مخازن جت ( git repositories ) بصورة مجانية:

التالية، المواقع الاشهر على الاطلاق والتي تقوم بإستضافة بصورة مجانية (لكل منها شروطها الخاصة)
ملاحظة: جميع المواقع تعمل بنفس الاسلوب من الناحية التقنية.

  1. GITHUB
    الموقع الالكتروني الرسمي
    الموقع الاشهر على الاطلاق والذي اكتسب شهرة واسعة وثقة عالية من جمهور المبمجين في الاونة لعدة اسباب واهمها اعطاء المستخدم الحق في رفع عدد لا نهائي من المشاريع واستقطاب المساهمين بصورة مجانية ولكن بشرط ان تكون البرمجيات مجانية ومرخصة بأي من الرخص المفتوحة المصدر. او ان يتم الاشتراك وانشاء مشاريع خاصة يمكن التحكم بمن يستطيع ان يرى المخزن الخاص بالمشروع
     
  2. BITBUCKET
    الموقع الالكتروني الرسمي
    من أهم المواقع  التي تقوم بتخزين واستضافة الاكواد من قبل الشركات وخصوصا الكبيرة منها . تعطي شركة اتلاسيان الفرصة للمبرمجين برفع ثلاث مشاريع خاصة بصورة مجانية وعدد غير محدود من المشاريع المجانية والمفتوحة المصدر . ولكن تضيق المساحة بالنسبة لعدد المساهمين الكلي (خمس مساهمين بالاضافة لك) لكل المشاريع، في حال كنت على الخطة المجانية.
     
  3. GITLAB
    الموقع الالكتروني الرسمي
    اكتسب هذا الموقع الشهرة الاوسع على الاطلاق وخصوصًا في العام ٢٠١٧ وذلك بعد حادثة خسارة تسجيل جميع السجلات في قواعد البيانات المتعلقة في مخازن الجت. والتي اسفرت بخسارات فادحة بالنسبة للشركة نفسها والشركات الاخرى التي استثمرت بثقة في هذا الموقع عن طريق رفع المشاريع على مخازنهم. لا سيما ان الموقع اكتسب الشهرة ايضا من قبل بحيث انه اعطى المستخدمين الحرية التامة في رفع عدد لا نهائي من المشاريع الخاصة والمفتوحة بصورة تنافس الموقعين السالف ذكرهم. ولكن ! بعد حادثة ٢٠١٧ .. هل ستقوم برفع اكوادك على هذا الموقع وتتحمل خسارة جهد ستة ساعات من العمل انت والفريق الذي يعمل على برمجيتك ؟

 


 

ما هي فوائد استخدام هذه التقنية في مشروعك القادم ؟

هناك العديد من الفوائد لاستخدام هذه التقنية ولكنها جميعا تتمحور في الثلاثة التالية:

  1. التحكم بالإصدارات
    لكل مخزن مجموعة من الاجذع ولكن جذع تاريخ منفصل يعتمد على جميع التنفيذات (commits) التي يمكنك الانتقال بينها لاحظار نسخ احتياطية مثلا او التحقق من كود معين تم الاستغناء عنه او من هناك يمكنك خلق جذع جديد ليصبح لديك نسخة جديدة من البرمجية.
     
  2. التمتع بروح الفريق الحقيقية
    في مجموعة من الاوامر يمكن للفريق ان يعمل على نفس التقنية في نفس الوقت وعلى نفس السطر احيانا والدمج بين الاصدارات المختلفة عند اكثر من مبرمج دون ان يتم تدمير البرنامج . عن طريق دمج (الاجذع) هذا وتعتبر هذه التقنية قابلة على عد وحساب نسبة كل شخص من الاجمالي الكلي للمساهمة في البرنامج. حيث انها تستطيع بالاصل ان تقارن بين جميع المساهمين وعدد الاحرف والاسطر التي قام بتغييرها مستخدم معين ونوع اللغة التي استخدمها . وهذا سيسهل معرفة دور كل شخص في الفريق ونسبته من المشروع
     
  3. المساهمة في العمل المجتمعي واكتساب الشهرة
    لان اغلب المبرمجين تقوم بالعمل على مشاريع ولا سيما انها قد تستخدم برمجيات صغيرة في مشاريعها لتوفير الوقت . معظم هذه البرمجيات الصغيرة محمية من قبل الرخص المفتوحة المصدر والتي يتم نشرها على المواقع الالكترونية السالف ذكرها والتي ستعطيك الفرصة ان تقوم بطلب سحب التعديل عليها او خلق نسخ خاصة بك او خلق مشاريع خاصة بك تقوم برفعها على المواقع وكسب الشهرة ان كانت مجدية ومحببة من الجمهور. هذا والجدير بالذكر ان هذه المواقع ستساعدك في ارسال رابط واحد حين تبحث عن عمل جديد . يمكن لموظف الموارد البشرية او مديرك المستقبلي ان يتأكد من جميع مشاريعك دون ان تقوم بإرسال هذه البرمجيات بإستخدام الوسائل التقليدية.
     

بالنهاية، سيقوم هذا النظام وهذه المواقع بالحفاظ على حقك وحقوق زملائك في العمل والمساهمين في مشروعك. وتوفير الوقت في نقل ودمج الاكواد بين افراد الفريق او اجهزة الكومبيوتر المتعددة الخاصة بك. 

 

هل تود أن تبدأ بالعمل على هذه التقنية ؟
لا، انا لست مهتم
انا اعمل بهذه التقنية بالاساس
نعم، علمني من اين ابدأ!
هذه المقال تنتمي لسلسلة من المقالات، اقرأ: