30
ديسمبر
2020
شرح أساسيات استخدام Git المعروف بنظام إدارة النسخ (1-2)
يمكن من خلال نظام إدارة النسخ Git وأوامره البسيطة حفظ المشروع البرمجي واسترجاع نسخه المختلفة من على الحاسب الشخصي أو من المنصات الداعمة للنظام مثل Github و Bitbucket.
ما هو Git؟
يُعرّف Git بأنه نظام لإدارة النسخ، يسمح بحفظ الملفات وتتبع نسخها المختلفة سواء كانت هذه الملفات تخص شخصًا واحدًا أو عدة أشخاص مشاركين في الملفات.
فعلى سبيل المثال: لنفترض أن لديك ملفًا يحتوي على سطر نصي، وقمت بحفظ هذا الملف في Git ثم أضفت إلى الملف سطرين آخرين وحفظته مرة أخرى، فإن Git سيسمح لك بالرجوع إلى حالة الملف الأولى عندما كان يحتوي على سطر واحد فقط وسيسمح لك أيضًا بالذهاب مرة أخرى إلى آخر تعديل، وطالما تقوم بحفظ جميع التغييرات في Git فإن جميع النسخ التي عملت عليها ستكون متاحة لك متى شئت.
فوائد Git
- التراجع إلى أي نسخ سابقة بما يتيح تلافي أي خطأ يحدث أثناء العمل.
- تتبع جميع النسخ التي تم العمل عليها بحريّة.
- يتيح Git لأفراد الفريق البرمجي العمل على في وقت واحد على نفس الملفات بحيث يكون لكل فرد في الفريق نسخته.
- إمكانية خلق فروع (نسخ) من ملف العمل الأصلي والتطوير عليها باستقلالية واختبارها دون التأثير على الملف الأصلي ومن ثم دمجها معه.
- تتيح كثير من خدمات الاستضافة الشهيرة كـ Heroku و Netlify ربط مواقع الويب فيها بالـ Git وهو ما يعني سهولة تحديث الموقع دون الحاجة لإجراء عمليات الرفع التقليدية بواسطة الـ FTP.
عناصر Git
- Repository أو المستودع، ويمثّل المشروع الذي يتم العمل عليه بكافة ملفاته ونسخه وفروعه المختلفة، ويُطلق عليه اختصارًا Repo.
- Stage الطور أو المرحلة، يتعامل Git مع حفظ النسخ على مرحلتين وتمثّل الـ Stage المرحلة الأولى حيث يتم إعلام Git بالتغييرات التي يُراد حفظها.
- Commit أو الحفظ، وتشبه نقطة الحفظ في الألعاب Save Point حيث يمكن من خلالها العودة إلى نسخة معينة تم الحفظ عندها.
- Branch أو الفرع، وهو نسخة من محتوى المستودع الرئيسي، يتم العمل عليها بشكل منفصل تمامًا، ويمكن اعتبارها عملية نسخ للمشروع بكافة محتوياته.
سنتطرق بالتفصيل إلى فائدة كل عنصر من العناصر السابقة وكيفية التعامل معه.
ابدأ مع Git
أولاً: تحميل Visual Studio Code
سنقوم بكتابة أوامر Git باستخدام برنامج Visual Studio Code ويمكن تحميله من هذا الرابط بعد ذلك سنقوم بتشغيل الـ Terminal حيث سنكتب أوامر Git المختلفة من خلاله.
ثانيًا: تنصيب Git
تختلف طريقة تنصيب Git باختلاف نظام التشغيل الذي يعمل في الحاسوب، كـ Windows أو Mac OS أو Linux ويمكن تحميل Git باتباع تعليمات التحميل من موقع git-scm.com ، وباستثناء نظام الويندوز الذي يمكن تنصيبه بتحميل ملف exe ستضطر لكتابة أوامر معينة في الـ Terminal لتنصيب Git على نظامي الـ Mac OS و Linux.
ثالثًا: التأكد من تنصيب Git بنجاح
للتأكد من تنصيب Git يمكن كتابة الأمر التالي في الـ Terminal:
git version
حيث سيُظهر الأمر السابق رقم نسخة Git التي تم تنصيبها في الحاسوب.
التعامل مع أوامر Git
التهيئة
تعني عملية التهيئة عملية إنشاء المستودع أو الـ Repository وتتم العملية بكتابة الأمر git init في نفس مجلد المشروع الذي يتم العمل عليه، وهنا تم إنشاء مجلد باسم gitfolder لتنفيذ عمليات Git عليه..
git init
استعراض الحالة
يمكن معرفة حالة الـ Repo بكتابة الأمر التالي:
git status
ويُستفاد من معرفة الحالة الاطلاع على التغييرات التي لحقت بالمشروع، وكذلك الفرع الذي يتم العمل عليه، وتُظهر الصورة أن العمل جارٍ على المسار الرئيسي Master Branch، وكذلك عدم وجود أي نقاط حفظ commits إلى اللحظة.
إضافة تعديلات ما قبل الحفظ Staging
يمكن من خلال ما يعرف بالمرحلة أو Stage إعلام Git بالتعديلات التي تمت ولكنها لم تحفظ بعد في نقطة الحفظ.
سنقوم الآن بإنشاء ملف باسم index.html، ومعاينة التغيير الذي سيحدث للحالة باستخدام الأمر git status.
git status
نلاحظ في الصورة أعلاه تغير معلومات الحالة بعد إضافة الملف، حيث يظهر اسم الملف المضاف حديثًا باللون الأحمر في إشارة إلى أنه غير متتبع أو لم يتم إضافته للمرحلة أو الـ Stage، سنقوم الآن بإضافته إلى الـ Stage وذلك بكتابة الأمر git add ثم نتبعه باسم الملف:
git add index.html
سنقوم باستعراض الحالة لرؤية الفارق:
git status
ويظهر في الصورة أن اسم الملف صار باللون الأخضر وهو ما يعني أنه في مرحلة الـ Stage وجاهز للحفظ في نقطة الحفظ Commit.
إضافة أكثر من ملف إلى الـ Stage
لإضافة ملف واحد فإننا نكتب اسم الملف بعد git add ولكن ماذا لو كان لدينا عشرة ملفات أو أكثر كيف يمكن إضافتها؟ يمكن ذلك بكتابة الأمر التالي:
git add .
والنقطة هنا (٠) تعني كافة الملفات.
نقطة الحفظ Commit
بعد إضافة التعديلات باستخدام الـ 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 الشهير وكيفية الاستفادة منه في إدارة النسخ الخاصة بالمشروع البرمجي.