أعده: فيصل العتيبي (فريق متاح)
ما هو نظام التحكم في الإصدارات، و لماذا يجب أن يهمك؟

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

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

الآن، هذا أهم شيء يجب عليك معرفته عن الـGit إذا أردت أستخدامه بشكل سهل وواضح. تمر ملفاتك في الـGit بثلاث حالات رئيسية:
  1. حالة الحفظ(Committed)، وهي الحالة التي تكون فيها البيانات محفوظة بأمان في قاعدة البيانات.
  2. حالة التعديل(Modified)، وهي الحالة حيث يكون الملف تم التعديل فيه ولكن لم يتم حفظه في قاعدة البيانات بعد.
  3. حالة Staged، وهي الحالة حيث تقوم بتحديد الملف المعدل ليكون جاهز لحالة الحفظ القادمة.

يقودنا هذا إلى ثلاث أقسام رئيسية لمشروع Git:

  1. مجلد Git هنا يقوم Git بتخزين التعريفات وقاعدة البيانات لمشروعك. يعتبر هذا المجلد أهم جزء في Git، هو الملف الذي يتم نسخه عندما تقوم بعمل استنساخ المستودع إلى جهاز آخر.
  2. مجلد العمل ويحتوي على أحد إصدارات المشروع والهدف منه كي تستخدم الملفات وتقوم بالتعديل عليها.
  3. تنظيم المنطقة (Staging area) وهو عبارة عن ملف بسيط ويكون بشكل عام في مجلد Git، يحتوي على معلومات عن الذي سوف يحدث في عملية الحفظ(Commit) القادمة.



صورة 1. الأقسام الرئيسية في Git.
أساسيات سير عمل Git على النحو التالي:

  • تقوم بعمل تعديلات على الملفات في مجلد العمل.
  • تقوم بتنظيم الملفات، وإضافتها إلى Staging area.
  • تقوم بحفظ الملفات، حيث الملفات هي التي موجودة في Staging area ويقوم Git بحفظها بشكل دائم في مجلد Git.

هويتك:

أول شيء تقوم بعمله بعد تثبيت Git هو إضافة أسمك وعنوان البريد الإلكتروني. يعتبر هذا الشيء مهم لأن لكل عملية حفظ(commit) يستخدم Git هذه المعلومات وتصبح مرتبطة مع عملية الحفظ.
git config --global user.name "Your Name $"
git config --global user.email [email protected] $
يمكنك إضافة بعض الألوان إلى Git وذلك لتسهيل متابعة التغيرات، من خلال الأمر التالي:
git config --global color.ui auto $
لكي تتأكد من أن الإعدادات التي قمت بها صحيحة يمكنك من خلال الأمر التالي رؤية الإعدادات.
git config –list $
إذا وجدت خطأ في الإعدادات، مثل: إدخال البريد الإلكتروني بشكل خاطئ يمكنك إدخال البريد بشكل صحيح من خلال تكرار نفس الأمر.
طلب المساعدة:

إذا أردت المساعدة وأنت تستخدم Git، هناك ثلاثة طرق للحصول على صفحة التعليمات(manpage) للمساعدة في أي من أوامر Git:
git --help $

مثال على ذلك:
git help config $
هذه الأوامر جيدة لأنها يمكنك الإطلاع عليها في أي مكان، حتى إذا كنت غير متصل بالإنترنت. إذا كانت هذه التعليمات غير كافية يمكنك الإطلاع على بعض المواقع المتخصصة في Git منها موقعي git وَ github .
التعديل على الملفات الموجودة بالمجلد:

تذكر أن كل ملف في مجلد العمل يمكن أن يكون في حالة من الحالتين: متعقبة(tracked) أو غير متعقبة(untracked). المتعقبة هي الملفات التي تكون موجودة في آخر إصدار للمجلد. الغير متعقبة هي جميع الملفات الأخرى الموجودة في مجلد العمل وليست موجودة في آخر إصدار للمجلد.
إذا قمت بالتعديل على ملف، يرى Git الملف على أنه معدل(modified)، ذلك لأنك قمت بتغيره منذ آخر إصدار. لحفظ هذا التعديل سوف تقوم بإرسال الملفات المعدلة إلى مرحلة staged ثم تقوم بحفظها(commit)، وتتكرر هذه الدورة.



صورة 2. حالة الملفات في Git.
بعض الأوامر المهمة:

git init $
هذا الأمر لإنشاء مجلد فرعي .git في المجلد الحالي. يحتوي هذا المجلد على جميع المستودعات اللازمة لبدأ عملية التحكم بالإصدارات.
هذا الأمر يقوم بشيئين. يقوم بإضافة الملفات الغير متعقبة إلى النظام. يقوم بإرسال الملفات المعدلة إلى مرحلة staged.
هذا الأمر يقوم بأخذ نسخة من مستودع Git موجود بالفعل سواءً كان على الجهاز أو على جهاز آخر.
git pull $
إذا قمت بأخذ نسخة من مستودع Git آخر وأردت الحصول على آخر المتغيرات التي حدثت هناك، يمكنك ذلك عن طريق استخدام هذا الأمر.
git commit $
هذا الأمر يقوم بحفظ جميع الأشياء الموجودة في مرحلة staged كإصدار جديد.
git status $
هذا الأمر يقوم بعرض حالة المجلد، إذا كانت هناك أي تعديلات أو أي ملفات جديدة بعد آخر إصدار سوف يقوم بعرضها.
git diff $
هذا الأمر يقوم بعرض جميع التغيرات بشكل مفصل.
git log $
هذا الأمر يقوم بعرض جميع عمليات الحفظ التي حدثت في هذا المشروع ومن ومتى قام بها.
إذا أردت التراجع عن شيء وهو في مرحلة staged هذا الأمر يسمح لك بذلك. مثال: قمت بالتعديل على ملف ثم أرسلته إلى مرحلة staged ثم أردت التراجع استخدم هذا الأمر لإرجاع الملف إلى مرحلة التعديل.
إذا أردت التراجع عن تعديل قمت به والملف مازال في مرحلة التعديل، استخدم هذا الأمر.
git format-patch HEAD~1 $
يمكنك من خلال هذا الأمر إصدار ملف يحتوي على التعديلات التي حدثت في آخر عملية حفظ(commit).
المراجع:
1. دليل استخدام Git من موقع http://git-scm.com/doc
http://motah.org.sa