هاتف

ماهو جيت ؟ ولماذا هو مهم للمبرمجين ؟

  

جيت

 

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

نظام إدارة :

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

 نظام إدارة النسخ :

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

نظام إدارة نسخ موزع :

جيت يتوفر على مستودع (Repository) بعيد وهو مخزن في خادم.

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

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

 لماذا نحتاج نظام إدارة نسخ مثل جيت ؟

المشاريع البرمجية عادة ما يشتغل عليها عدة مطورين في آن واحد. و لهذا نحتاج نظام إدارة نسخ مثل جيت لضمان عدم وجود تضارب في الكود البرمجي بين المطورين. 

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



إعداد برنامج جيت :

عوض عرض المفاهيم سنقوم بشرحها بواسطة أمثلة لتسهيل الفهم : 

تحميل برنامج جيت : 

يمكنك تحميل برنامج جيت في الرابط أسفله :

موقع رسمي لبرنامج جيت/download/button/#fa0a2e

بعد ذلك يمكنك التحقق من إنتهاء التحميل عن طريق موجه الأوامر بكتابة السطر التالي :

 git - - versioncode-box 

قم بإعداد اسمك و بريدك الإلكتروني في برنامج جيت :

استعمل السطرين التاليين :

 "git config - -global user.email "yourEmail@example.comcode-box

" git config - -global user.name "Your Namecode-box

إنشاء مستودعك المحلي :

 في حاسوبك قم بإنشاء ملف لمشروعك. 

لنسميه مثلا simple-git-demo قم بإضافة مستودع محلي لمشروعك باستعمال الأسطر التالية في موجه الأوامر:

 cd simple-git-demo git initcode-box 

عبارة git init تقوم بإنشاء مستودع محلي للمشروع. 

لنقم بإضافة محتوى في المشروع :

 قم بإنشاء ملف داخل مشروعك و قم بتسميته demo.txt و أكتب داخل هذا الملف النص التالي :

 Initial Contentcode-box 

سنقوم بالعمل فقط مع نص عادي و ليس كودا برمجيا، وذلك لأن ما سنركز عليه في هذه المقالة هو برنامج جيت و ليس لغة برمجة معينة.

إعداد و حفظ الكود : 

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

 الإعداد (Staging) : 

لوضع ملف في مرحلة الإعداد استعمل السطر الآتي :

 git add demo.txtcode-box 

في حالة أردت إضافة عدة ملفات في آن واحد :

 git add file1 file2 file3code-box 

إدا أردت إضافة جميع ملفات مشروعك لمنطقة الإعداد :

  . git add  code-box  

لاحظ أنه هناك فراغ بين كلمة add و النقطة. 

الحفظ (Committing):

 استعمل السطر التالي لحفظ الملف:

 "git commit -m "first commitcode-box

عبارة first commit هي اختيارية، يمكنك كتابة أي شيء تريده في مكانها. يمكنك إستعمالها لتذكيرك بالتغييرات التي قمت بها.

 إذا حصلت على الحالة (git Status) و السجل (git Log) : الآن قم بتغيير ملفك الذي قمنا بتسميته demo.txt و أضف شيئا إلى نصه مثلا :

Initial content adding more contentcode-box

الحالة (Status) :

للحصول على معلومات حول الملفات التي تم تغييرها والمتواجدة في مرحلة الإعداد (Staging) وكذا بعض المعلومات الأخرى، استعمل السطر التالي :

 git status.code-box

الحالة (Status) تظهر أن ملفنا demo.txt تم تغييره و لا يتواجد في منطقة الإعداد. لنقم بوضع ملفنا في منطقة الإعداد:

 git add demo.txtcode-box

الآن لنقم بحفظه :

 "git commit -m "demo.txt file is modifiedcode-box

السجل (Log) :

 للحصول على جميع التغييرات التي تم حفظها كل على حدة، اكتب :

git logcode-box

سوف يظهر لك اسم الشخص الذي قام بالتغيير (commit)، تاريخه، والرسالة المرفقة معه. 

الفروع (Branches) :  

حتى الآن لم نقم بإنشاء فرع في برنامج جيت. التغييرات التي نحفظها (commits) تتم بشكل افتراضي في الفرع الرئيسي أو The master branch بالانجليزي. 

ماهو الفرع؟

 الفرع ماهو إلا مؤشر على آخر حفظ (commit) قمنا به في مستودعنا. فالفرع الرئيسي حاليا هو مؤشر على الحفظ الثاني الذي قمنا به (second commit) الذي أرفقناه بالرسالة التالية : demo.txt file is modified 

لماذا نحتاج عدة فروع لمشروعنا؟ 

نحتاج الفروع في حالة القيام بعدة تغييرات في آن واحد، هذا يستعمل مثلا في حالة وجود فريق من المطورين يعملون على مشروع واحد. 

جيت


في الصورة أعلاه تم القيام بالحفظ الأول Commit1 و الحفظ الثاني Commit1 في الفرع الرئيسي.

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

الآن الفرع الذي تم إنشائه يحتوي على محتوى مختلف عن الفرع الرئيسي، يمكن دمجهما لاحقا إذا أردنا باستعمال الأمر :

 git mergecode-box 

 سنقوم بشرحه أكثر لاحقا. 

إنشاء فرع جديد في المستودع المحلي:

 يمكنك إنشاء فرع جديد باستعمال السطر التالي:

 git branch testcode-box 

هذا السطر يقوم بإنشاء فرع جديد و سميناه "Test".

 للإنتقال إلى هذا الفرع نقوم بكتابة:

 git checkout testcode-box 

الآن نحن متواجدون في هذا الفرع. يمكنك إظهار لائحة بجميع الفروع التي يتوفر عليها مستودعك باستعمال:

 git branchcode-box

القيام بالحفظ (Commit) في الفرع الجديد : 

لنقم بتعديل ملفنا demo.txt ولنضف النص التالي :

Initial content adding more content adding some content from test branchcode-box

الآن لنقم بوضعه في مرحلة الإعداد (staging) و لنحفظه في الفرع الجديد

"git add demo.txt git commit -m "test branch commitcode-box

الآن الفرع الجديد الذي يسمى test يسبق الفرع الرئيسي بحفظ واحد. يمكن التحقق من سجل الحفظ في هذا الفرع عن طريق :

 git logcode-box 

الدمج Merge :

 حاليا الفرع test يسبق الفرع الرئيسي بحفظ واحد. ماذا لو أردنا جلب محتوى الفرع test وو ضعه في الفرع الرئيسي. هنا نستعمل خاصية الدمج Merge. لدمج الفرع test مع الفرع الرئيسي Master branch :

 أولا نقوم بالرجوع إلى الفرع الرئيسي:

git checkout mastercode-box

بعد ذلك نقوم بالدمج :

 git merge testcode-box 

بعد ذلك سيتم الدمج بنجاح. 

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

الآن قم بكتابة git log وسترى أن الفرع الرئيسي أصبح الآن يتوفر على ثلاثة حفظ 3 commits. 



المستودع البعيد (Remote repository) :

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

جيت

 

جيت هاب Github :

 قمنا سابقا بشرح موقع جيت هاب في هذه المقالة. يمكننا إستعمال جيت هاب لإنشاء مستودعنا البعيد. كل ما عليك القيام به هو إنشاء حساب على موقع جيت هاب بعد التسجيل، قم بالنقر على إنشاء مستودع جديد New Repositry. سنقوم بتسمية هذا المستودع Git-blog-demo. (يمكنك اختيار أي اسم تريد). بعد إنشاء المستودع ستظهر صفحة جديدة كالتالي :


جيت

 

صورة رابط مستودعنا هو النص الذي تم إبرازه بالأزرق في الصورة أعلاه.

لربط مستودعك المحلي بالمستودع البعيد الذي قمنا للتو بإنشاءه اكتب السطر الآتي في موجه الأوامر:

 git remote add origin repository urlcode-box

 قم باستبدال جملة repository url برابط المستودع.

الإرسال Push :

 لإرسال الكود من مستودعك المحلي إلى مستودع جيت هاب:

git push -u origin mastercode-box

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

بعض الأوامر الإضافية :

الإستلام Pull :

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

git pull origin mastercode-box

 الاستنساخ Clone :

 لاستنساخ مستودع ما على جيت هاب و تحميل محتوياته على حاسوبك اكتب : 

  git clone repositry urlcode-box

 مع استبدل جملة Repositry url برابط المستودع الذي تود نسخه.


أشكرك على قرائتك لهذا المقال ، إذا كان لديك تساؤل أو توضيح ضعه في التعليقات أسفله و أراك في مقالة أخرى.alert-info

إرسال تعليق

0 تعليقات