يُعرّف Git بأنه نظام لإدارة النسخ، يسمح بحفظ الملفات وتتبع نسخها المختلفة سواء كانت هذه الملفات تخص شخصًا واحدًا أو عدة أشخاص مشاركين في الملفات.
فعلى سبيل المثال: لنفترض أن لديك ملفًا يحتوي على سطر نصي، وقمت بحفظ هذا الملف في Git ثم أضفت إلى الملف سطرين آخرين وحفظته مرة أخرى، فإن Git سيسمح لك بالرجوع إلى حالة الملف الأولى عندما كان يحتوي على سطر واحد فقط وسيسمح لك أيضًا بالذهاب مرة أخرى إلى آخر تعديل، وطالما تقوم بحفظ جميع التغييرات في Git فإن جميع النسخ التي عملت عليها ستكون متاحة لك متى شئت.
سنتطرق بالتفصيل إلى فائدة كل عنصر من العناصر السابقة وكيفية التعامل معه.
سنقوم بكتابة أوامر Git باستخدام برنامج Visual Studio Code ويمكن تحميله من هذا الرابط بعد ذلك سنقوم بتشغيل الـ Terminal حيث سنكتب أوامر Git المختلفة من خلاله.
تختلف طريقة تنصيب Git باختلاف نظام التشغيل الذي يعمل في الحاسوب، كـ Windows أو Mac OS أو Linux ويمكن تحميل Git باتباع تعليمات التحميل من موقع git-scm.com ، وباستثناء نظام الويندوز الذي يمكن تنصيبه بتحميل ملف exe ستضطر لكتابة أوامر معينة في الـ Terminal لتنصيب Git على نظامي الـ Mac OS و Linux.
للتأكد من تنصيب Git يمكن كتابة الأمر التالي في الـ Terminal:
git version
حيث سيُظهر الأمر السابق رقم نسخة Git التي تم تنصيبها في الحاسوب.
تعني عملية التهيئة عملية إنشاء المستودع أو الـ Repository وتتم العملية بكتابة الأمر git init في نفس مجلد المشروع الذي يتم العمل عليه، وهنا تم إنشاء مجلد باسم gitfolder لتنفيذ عمليات Git عليه..
git init
يمكن معرفة حالة الـ Repo بكتابة الأمر التالي:
git status
ويُستفاد من معرفة الحالة الاطلاع على التغييرات التي لحقت بالمشروع، وكذلك الفرع الذي يتم العمل عليه، وتُظهر الصورة أن العمل جارٍ على المسار الرئيسي Master Branch، وكذلك عدم وجود أي نقاط حفظ commits إلى اللحظة.
يمكن من خلال ما يعرف بالمرحلة أو Stage إعلام Git بالتعديلات التي تمت ولكنها لم تحفظ بعد في نقطة الحفظ.
سنقوم الآن بإنشاء ملف باسم index.html، ومعاينة التغيير الذي سيحدث للحالة باستخدام الأمر git status.
git status
نلاحظ في الصورة أعلاه تغير معلومات الحالة بعد إضافة الملف، حيث يظهر اسم الملف المضاف حديثًا باللون الأحمر في إشارة إلى أنه غير متتبع أو لم يتم إضافته للمرحلة أو الـ Stage، سنقوم الآن بإضافته إلى الـ Stage وذلك بكتابة الأمر git add ثم نتبعه باسم الملف:
git add index.html
سنقوم باستعراض الحالة لرؤية الفارق:
git status
ويظهر في الصورة أن اسم الملف صار باللون الأخضر وهو ما يعني أنه في مرحلة الـ Stage وجاهز للحفظ في نقطة الحفظ Commit.
لإضافة ملف واحد فإننا نكتب اسم الملف بعد git add ولكن ماذا لو كان لدينا عشرة ملفات أو أكثر كيف يمكن إضافتها؟ يمكن ذلك بكتابة الأمر التالي:
git add .
والنقطة هنا (٠) تعني كافة الملفات.
بعد إضافة التعديلات باستخدام الـ Stage يمكن الآن إنشاء نقطة حفظ وذلك بكتابة git commit -m يلي ذلك عنوان نقطة الحفظ على النحو التالي:
git commit -m “version 2.0”
سنقوم بإضافة ملف جديد باسم style.css
بعد ذلك سنقم بإنشاء نقطة حفظ جديدة وسنكتب الأوامر على النحو التالي:
git add .
git commit -m “adding style.css”
لقد تم إنشاء نقطة حفظ جديدة للمشروع تحتوي على الملف style.css، ويمكن استعراض جميع نقاط الحفظ من خلال الأمر التالي:
git log
تحتوي كل نقطة حفظ على رقم خاص بها يميّزها عن غيرها، وفي الصورة أعلاه فإن الرقم المكتوب بالأصفر هو رقم نقطة الحفظ.
عرفنا كيفية استعراض نقاط الحفظ الموجودة، ولكن كيف يمكن الرجوع إلى نقطة حفظ معينة؟ يمكن ذلك باستخدام الأمر checkout متبوعًا برقم نقطة الحفظ أو الـ commit, وسنقوم الآن بالعودة إلى نقطة الحفظ المسماه “version 2.0” بكتابة الأمر التالي:
git checkout 4038c78dfe1c274ab6ac62a44c6fca51922459bc
نلاحظ أن ملف style.css قد اختفى نتيجة لعودتنا إلى نقطة الحفظ قبل إنشائه.
من المزعج بعض الشيء استخدام رقم نقطة الحفظ الذي يزيد عن الثلاثين حرفًا، ومن حسن الحظ يمكن اختصاره باستخدام ما يسمى بالراية أو الـ flag، فإذا أضفنا الراية oneline— بعد استخدام أمر log ستظهر لدينا نسخة مختصرة من رقم نقطة الحفظ:
git log —oneline
من خلال الرقم المختصر يمكن الانتقال إلى أي نسخة باستخدام الأمر checkout:
git checkout 4038c78
من خلال الجزء الأول من هذه التدوينة تعرّفنا على نظام إدارة النسخ Git وعدد من الأوامر المهمة للعمل عليه، وفي الجزء الثاني من هذه التدوينة سنتطرّق إلى واحدة من أهم خواص Git وهي الفروع أو الـ Branches بالإضافة إلى ذلك سنلقي نظرة موقع Github الشهير وكيفية الاستفادة منه في إدارة النسخ الخاصة بالمشروع البرمجي.