نظرة عامة على مشروع Git ومميزاته وكيفية إعداده

- الإعلانات -

نظرة عامة على مشروع Git ومميزاته وكيفية إعداده

ما هو Git ؟

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

بدأ مشروع جيت على يد Linus Torvalds لكي يتمكن من العمل مع المطورين أثناء تطوير لينكس كيرنال وذلك بعد أن وجد أن Bitkeeper نظام التحكم الذي كانوا يعتمدون عليه آنذاك غير كافي لتلبية متطلبات العمل. وبذكر أن Torvalds هو مؤسس جيت أثناء عمله على لينكس لعلك قد إستنتجت حقيقة أن جيت مجاني مفتوح المصدر.

حالياً المسؤول عن جيت هو المطور الياباني العامل بشركة جوجل Junio Hamano وذلك منذ أن أعطاه Torvalds هذا الحق في عام 2005 بعد شهرين فقط من إنطلاق المشروع.

كلمة git تعني بالإنجليزية الشخص السخيف ولكن Torvalds ترك أمر التسمية غير محدد فيمكن إعتبارها لاشئ سوى ثلاثة أحرف عشوائية لا معنى لها مثل كثير من الأدوات أو إختصار لـ global information tracker إلخ إعتبرها ما شئت.

أمثلة VCS أخرى:

Apache Subversion Mercurial, Monotone, BitKeeper, Fossil

للمزيد راجع هذه القائمة.

ما الذي يميز Git؟

إليك أبرز الخصائص التي جعلت من git الأداة الأشهر إستخداماً في تطوير البرمجيات.

1.     اللامركزية:

المعهود في هذا النوع من الأنظمة إعتمادها على خادم مركزي يحتوي على الملفات وكل مطور يتصل بالخادم من أجل الوصول لتلك البيانات والتعديل عليها.

نظرة عامة على مشروع Git ومميزاته وكيفية إعداده
نظرة عامة على مشروع Git ومميزاته وكيفية إعداده

ما يعني أن كل على كل مطور إمتلاك إتصال نشط بالإنترنت وعند إنقطاع الإتصال لا يمكنه مواصلة العمل.

أما جيت فيقوم بحفظ نسخة من البيانات محلياً في حاسوب كل مطور ما يعني أن عند إنقطاع الإتصال يمكن للمطور مواصلة العمل ولاحقاً يمكنه رفع التعديلات ورؤية ما جد أثناء غيابه.

وهذا يعني أيضاً سرعة التنقل بين البيانات وإجراء الأوامر (عدا عمليتي الرفع والتحميل) بالإضافة لضمان حفظ البيانات إذ أن فقدان البيانات على الخادم لا يتسبب في ضياعها نهائياً لوجود نسخ أخرى عند كل مطور.

  1. التطوير اللامتتابع

الكثير من نماذج تطوير البرمجيات غير متتابعة فتكون هناك العديد من المهام قيد التطوير في الوقت ذاته ويدعم جيت هذا النوع من النماذج عبر ما يسمى بالفروع حيث يمكن إنشاء أفرع لكل الخواص الجديدة إلى أن يتم الإنتهاء من تطويرها والتأكد من الإضافات الجديدة وعدم تسببها في أي أخطاء ثم يُعاد دمجها في الفرع الرئيسي.

  1. الحماية

يستخدم جيت خوارزمية SHA1 للتأكد من صحة البيانات بحيث لا يمكن التلاعب في تاريخ تطوير البرمجيات بالإضافة أو الحذف أو التعديل.

إعداد GIT

قم بتحميل النسخة المناسبة لنظام تشغيلك من هنا، للمثبت واجهة رسومية تحتوي على الإعدادت الإفتراضية التي يمكنك الإعتماد عليها في تجربتك الأولى دون أدنى تغيير.

أيضاً يمكنك التثبيت على لينكس بإستخدام apt-get install git

يُستخدم جيت بالأساس عبر واجهة سطر الأوامر إلا أن إصدار Git-for-windows يتضمن واجهة رسومية لكل الأوامر المحتملة لكي يكافئ توقعات مستخدمين نظام ويندوز.

نظرة عامة على مشروع Git ومميزاته وكيفية إعداده
نظرة عامة على مشروع Git ومميزاته وكيفية إعداده

لإستخدام جيت عبر سطر الأوامر غير مسار موجة الأوامر إلى مجلد المشروع ثم نفذ الأوامر التالية مع إستبدال المسار المحلي لديك في الأمر الثاني

git init –bare

git remote add origin /users/arabefuture/new-project

git checkout -b master

الآن أصبح لديك نسخة رئيسية من المشروع وتُعرف في جيت بالمستودع(Repository) ، ولديك فرع واحد هو الفرع الرئيسي(Master Branch)  ويمكنك البدء بإنشاء أفرع ثانوية والقيام بالتعديلات وتأكيدها أو التراجع عن تعديلات سابقة ودمج الأفرع أو حذفها .. إلخ كل هذا عبر الواجهة الرسومية أو عبر سطر الأوامر، إليك المرجع الشامل لأوامر جيت إذا كنت تنوي تعلم إستخدامه عبر سطر الأوامر.

مشاركة مستودع git مع الآخرين

بالرغم من إمكانية إستخدام جيت بمفردك على حاسوبك لتعقب مراحل تطوير مشروعك بشكل منسق والرجوع لأي نقطة إن لزم الأمر، إلا أن أغلب المشاريع تعتمد على العمل الجماعي وهو أهم مميزات جيت.

كما ذكرنا جيت يتمتع باللامركزية، فيمكنك مشاركة المستودع مع كافة المطورين دون وجود خادم مركزي، يمكنك إستخدام محادثة جماعية مثلاً لإرسال وإستقبال المساهمات بين فريقك ويمكنك أيضاً مشاركتها مباشرة بعد إعداد إتصالpeer to peer  بين المساهمين ولكن الإعداد الأشهر لجيت يكون بإستخدام خادم مركزي.

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

ذلك لأن إرسال التطويرات بالبريد نوعاً ما ممل ويتطلب خطوة إضافية للعمل بإستخدام جيت أما إعداد إتصال peer to peer فهذا يعني ضرورة أن تعمل الحواسيب بشكل دائم، فإن أغلقت حاسوبك لن تتمكن من إستقبال المساهمات وعندما تصبح متصلاً ربما يكون المرسل قد أغلق هو حاسوبه فتضطر لإنتظاره وهكذا قد يتأخر إستلامك للمساهمات لعدة أيام كما أن طبيعة شبكات NAT تمثل عقبة أخرى لإعداد إتصال P2P خاصة إذا كنت تستخدم شبكات إنترنت مختلفة يومياً. من أجل كل هذا يتم إعداد خادم مركزي في جيت يقتصر دوره على المزامنة وفي حالة إنقطاع الإتصال لازال بإمكانك إجراء التعديلات محلياً لأنك بالفعل تمتلك نسخة من المشروع بأكمله بفضل لامركزية البيانات في جيت.

إذاً كيف يتم إعداد خادم جيت؟

خادم جيت يحتوي على:

–        جيت مثبت وهو نفس الإصدار الذي يتم تثبيته على حواسيب المساهمين (حزمة جيت تشمل كل الخصائص يمكنها التكامل مع الخادم أو العميل لا يوجد إصدار جيت للخادم وإصدار جيت للعميل).

–        خادم  HTTPS أو SSH أو Smart HTTP، من خلال أياً منهم يتمكن المساهمون من الإتصال بخادم جيت.

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

منصات جيت

–        جيت هب GitHub

نظرة عامة على مشروع Git ومميزاته وكيفية إعداده

أحد أكبر منصات البرمجيات الحرة التي تعتمد على إستخدام جيت، تم تأسيس الشركة في 2008 أي بعد ثلاثة سنوات فقط من إنطلاق مشروع جيت نفسه وهي شركة أمريكية خاصة بيعت في 2008 لشركة ميكروسوفت بما يعادل 7.5 بليون دولار أمريكي.

على منصة جيت هاب قد تجد مستودعات متاحة بشكل عام ولكنك لا تملك صلاحية إنشاء أفرع ثانوية أو التعديل عليها مباشرة بدلاً من ذلك عليك عمل “fork” وهو مجرد عملية نسخ للمستودع إلى حسابك حيث يمكنك التعديل عليه بشكل مستقل عن المستودع الرئيسي وعند الإنتهاء يمكنك طلب دمجه مع المستودع الرئيسي عبر Pull Request (PR) ثم يقوم مدراء المشروع بمراجعته ودمجه إن كان مناسباً من وجهة نظرهم وذلك لحماية المستودع الرئيسي من التعديلات الغير ضرورية أو التعديلات المزيفه التي تلحق الضرر بالمشروع أو تلوثه بملفات خبيثة.

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

أيضاً جيت هب هي شركة ربحية يلزمك شراء عضوية إحترافية للتمكن من إستخدام بعض الخصائص كان من بينها إنشاء المستودعات بشكل خاص إلى أن تم إتاحتها مجاناً في السابع من يناير هذا العام.

–        جيت لاب Gitlap

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

أما جيت لاب فيقدم الكود المصدري للمنصة بالكامل وهو أمر رائع حقاً ليس فقط لأن بإمكانك تثبيت نسختك من جيت لاب على خادمك الخاص لضمان السرية التامة للبيانات بل أيضاً جيت لاب من نوعية المشاريع الكبيرة التي يمكنك التعلم منها الكثير كمشروع مفتوح المصدر.

منصات أخرى

–        BitBucket

–        SourceForge

–        Beanstalk

–        Apache Allura

–        AWS CodeCommit

–        Phabricator

–        Launchpad

إلى اللقاء.

التعليقات متوقفه

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More