صورة git

ما هو Git ولماذا عليك استخدامه

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

😶 ربما سنعمل جميعاً على جهاز واحد.

🤓 لا لا, كل واحد سيعمل على جهازه الخاص ونتبادل الملفات فيما بيننا عن طريق الواتساب.

🤔 ماذا لو قمنا بالتعديل على نفس الملف, كيف سنحصل على التحديثات من الجميع؟.

🙄 يا رجل يبدو أن هذا الأمر معقد.

😀 من الأفضل أن يتطوع أحدنا ويقوم بإنجاز المشروع بمفرده.

مشروع صغير سيسبب الكثير من المتاعب لو أردت العمل عليه بطريقة مشابهة لما سبق, فما بالك بالمشاريع الضخمة..!

لا داعي للقلق فإذا قمت باستخدام ال Git ستُحل جميع مشاكلك..

ما هو ال Git ببساطة؟

هو نظام تحكم في الإصدار موزع, مجاني ومفتوح المصدر مصمم للتعامل مع كل شيء من المشاريع الصغيرة إلى الكبيرة جداً بسرعة وكفاءة.

نظام التحكم في الإصدار VCS

قبل أن نتعمق بتفاصيل ال Git يجب أن نتطرق الى مفهوم نظام التحكم في الإصدار  او بالإنجليزية (Version Control System) باختصار هو عبارة عن نظام بسجل التغيرات على ملف أو مجموعة ملفات, ومع مرور الوقت يمكنك العودة لإصدار قديم معين.

كما يسمح لك هذا النظام بإعادة الملفات الى حالتها السابقة أو حتى إعادة المشروع بأكمله لحالة سابقة ومقارنة التغيرات مع مرور الوقت, وحتى بإمكانك معرفة مَن مِن فريق العمل قام بتعديل شي بالمشروع وسبب مشكلة معينة ومتى تم ذلك بالتاريخ واليوم والساعة.

كيف نشأ Git

ال Linux kernel هو مشروع برمجيات مفتوح المصدر واسع النطاق إلى حد ما.. تم العمل على تغييرات البرنامج على شكل تصحيحات وملفات مؤرشفة. في عام 2002، بدأ مشروع Linux kernel باستخدام DVCS خاص يسمى BitKeeper.

في عام 2005، انهارت العلاقة بين المجتمع المطور لنواة Linux والشركة التجارية التي طورت BitKeeper، بسبب ان الأخيرة أصبحت غير مجانية. مما دفع المجتمع المطور ل Linux وعلى وجه الخصوص (Linus Torvalds، مبتكر Linux ) دفعهم الى تطوير أداتهم الخاصة بناءً على بعض الدروس التي تعلموها أثناء استخدام BitKeeper

ومن هنا كانت بداية ال Git ..

VCS و DVCS ما الفرق؟

صورة يفكر

القصة كلها بحرف ال D ولكن إضافة هذا الحرف غيرت الكثير بطريقة العمل للأفضل ..

ففي (أنظمة التحكم في الإصدار الموزع أو Distributed Version Control System (“DVCS”مثل Git, المستخدم عندما يتعامل مع النظام يأخذ نسخة من المستودع بشكل كامل (المستودع او ال Repository: “اسم يطلق على مكان تخزين المشروع”).

هنا نقطة القوة لنفترض انو السيرفر الخاص بنظام ال DVCS تعطل فيمكن بسهولة نسخ أي مستودع من مستودعات فريق العمل (المستخدمين) للسيرفر حتى تتم استعادته ومتابعة العمل بأمان, فكل نسخة هي نسخة احتياطية كاملة لجميع البيانات.

ميزات ال Git

1- التفرع والدمج

ميزة Git التي تجعلها حقاً متميزة عن كل SCM الأخرى هي نموذجها المتفرّع.

يسمح لك بامتلاك العديد من الفروع المحلية (Branches) التي يمكن أن تكون مستقلة تماماً عن بعضها البعض. إنشاء خطوط التطوير هذه ودمجها وحذفها تستغرق بضعة ثوانٍ.

2- صغير الحجم وسريع الآداء

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

تم إنشاء Git للعمل على نواة Linux كما ذكرنا سابقاً، مما يعني أنه يتعامل بفعالية مع المستودعات الكبيرة من اليوم الأول.

إن Git مكتوب بلغة C، مما يقلل من عبء أوقات التشغيل المرتبطة باللغات عالية المستوى. فكانت السرعة والأداء هدفاً أساسياً لتصميم Git منذ البداية.

3- موزع

نظراً لطبيعة Git الموزعة ونظام التفرع الرائع، يمكن تنفيذ عدد لا نهائي تقريباً من مهام سير العمل (workflows) بسهولة نسبية.

كل مستخدم لديه بشكل أساسي نسخة احتياطية كاملة من الخادم الرئيسي. يمكن دفع كل من هذه النسخ لاستبدال الخادم الرئيسي في حالة حدوث عطل أو تلف. في الواقع ، لا توجد نقطة فشل واحدة في Git ما لم تكن هناك نسخة واحدة فقط من المستودع.

4- ضمان البيانات

يضمن نموذج البيانات الذي يستخدمه Git سلامة التشفير لكل جزء من مشروعك.

5- منطقة التدريج

على عكس الأنظمة الأخرى، يحتوي Git على شيء يسمى منطقة التدريج “staging area” أو “الفهرس”. هذه منطقة وسيطة حيث يمكن تنسيق ال commits ومراجعتها قبل إلتزامها.

الشيء الوحيد الذي يميز Git عن الأدوات الأخرى هو أنه من الممكن تنظيم بعض ملفاتك بسرعة وتنفيذها دون تنفيذ جميع الملفات المعدلة الأخرى في دليل العمل أو الحاجة إلى إدراجها في سطر الأوامر أثناء الالتزام “commit”.

6- مجاني ومفتوح المصدر

تم إصدار Git بموجب GNU General Public License الإصدار 2.0 ، وهو ترخيص مفتوح المصدر. اختار مشروع Git استخدام GPLv2 لضمان حريتك في مشاركة وتغيير البرامج المجانية للتأكد من أن البرنامج مجاني لجميع مستخدميه.


ملاحظة: الميزات السابقة تمت ترجمتها من الإنجليزية قد لا يصل المعنى المطلوب منها, يمكنك قراءة الميزات بالإنجليزية.

الخلاصة

يخزن Git المعلومات ويفكر فيها بشكل مختلف كثيراً عن أنظمة التحكم في الإصدارات الأخرى.

لا يفكر Git في المعلومات التي يخزنها كمجموعة من الملفات والتغييرات التي يتم إجراؤها على كل ملف بمرور الوقت.

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

يفكر Git في البيانات مثل تدفق اللقطات.

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *