ما هو Git؟ دليل المبتدئين لفهم نظام التحكم في الإصدارات

دقائق القراءة: 7

مقدمة: لماذا يُعد Git مهارة أساسية لكل مطور؟

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

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

شرح مبسط لنظام Git لإدارة الإصدارات وتتبع تغييرات الشيفرة البرمجية

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

ما هو Git؟

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

يمكنك التحقق مما إذا كان Git مثبتاً بالفعل على جهازك عبر تنفيذ الأمر التالي في الطرفية:

git --version

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

ما هو GitHub؟ وما الفرق بينه وبين Git؟

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

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

توجد أيضاً منصات مشابهة مثل GitLab وBitbucket، وجميعها تؤدي وظيفة استضافة المستودعات البعيدة مع بعض الفروقات في المزايا وسير العمل.

الفرق بين Git وGitHub في إدارة الإصدارات واستضافة المستودعات البرمجية

كيف تبدأ باستخدام Git؟

العمل عبر الطرفية أم الواجهة الرسومية؟

يمكنك استخدام Git بطريقتين أساسيتين:

  • عبر سطر الأوامر في الطرفية Terminal.
  • عبر واجهة رسومية GUI مثل Sourcetree أو GitKraken.

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

ورغم اختلاف أسلوب الاستخدام، فإن فهم المفاهيم الأساسية في Git يظل ضرورياً مهما كانت الأداة التي تعتمد عليها.

تهيئة مجلد المشروع للعمل مع Git

قبل استخدام Git، يجب أن يكون لديك مشروع جديد أو مشروع قائم بالفعل. إذا كنت تبدأ من الصفر، يمكنك إنشاء مجلد جديد للمشروع باستخدام الأمر:

mkdir novel

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

إنشاء مجلد مشروع جديد لاستخدام Git في تتبع الإصدارات

كيف تنشئ مستودع Git Repository؟

بعد الدخول إلى مجلد المشروع، تحتاج إلى تهيئة مستودع Git باستخدام الأمر التالي:

git init

قد يبدو بعد تنفيذ الأمر أن شيئاً لم يحدث، لكن في الخلفية يقوم Git بإنشاء بنية خاصة لإدارة المشروع. ولرؤية الملفات المخفية داخل المجلد، يمكنك استخدام الأمر:

ls -a

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

تهيئة مستودع Git داخل مجلد المشروع وظهور مجلد .git المخفي

ما هو المستودع المحلي والمستودع البعيد؟

المستودع الموجود على جهازك يُعرف باسم Local Repository، وهو المكان الذي تعمل فيه يومياً على ملفات المشروع. وعندما ترفع هذا المستودع إلى خدمة مثل GitHub، فإن النسخة المستضافة هناك تُسمى Remote Repository.

تكمن فائدة المستودع البعيد في:

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

كيف يساعد Git على التعاون بين المطورين؟

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

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

المستودع البعيد والمستودعات المحلية في Git عند العمل الجماعي

كيف يتتبع Git التغييرات؟

يعتمد Git على فكرة حفظ لقطات متتالية من المشروع تُعرف باسم commits. وكل commit يمثل نسخة محددة من المشروع في لحظة زمنية معينة.

ما هو commit؟

الـ commit هو سجل محفوظ للتغييرات التي قررت اعتمادها داخل المشروع. يمكن اعتباره نقطة مرجعية مستقلة تحتوي على الملفات والمجلدات كما كانت عند لحظة الحفظ.

هذه الفكرة تمنحك قدرة كبيرة على:

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

المناطق الثلاث الأساسية داخل Git

لفهم كيفية إنشاء commit، يجب أولاً التعرف على ثلاث مناطق رئيسية داخل Git:

  1. دليل العمل Working Directory: وهو محتوى مجلد المشروع الذي تعدّل عليه مباشرة.
  2. منطقة التجهيز Staging Area: وهي المساحة التي تختار فيها التغييرات التي تريد تضمينها في الالتزام التالي.
  3. سجل الالتزامات Commit History: وهو المكان الذي تُحفظ فيه الالتزامات بعد إنشائها.

داخل المجلد .git، تُمثَّل منطقة التجهيز غالباً عبر ملف باسم index، بينما يُخزن سجل الالتزامات داخل مجلد مثل objects.

شرح Working Directory وStaging Area وCommit History داخل Git

سير العمل المعتاد في Git

الخطوة الأولى: تعديل الملفات

إذا كان المشروع جديداً، يمكنك إنشاء أول ملف داخله. على سبيل المثال، لإنشاء ملف نصي باسم chapter1.txt داخل مشروع novel، استخدم الأمر:

touch chapter1.txt

بعد إنشاء الملف أو تعديل ملفات موجودة، يمكنك معرفة حالة المشروع بالأمر:

git status

يعرض هذا الأمر حالة الملفات داخل Working Directory وStaging Area، ويخبرك إن كانت هناك ملفات جديدة أو معدلة أو غير متتبعة.

إضافة ملف جديد إلى المشروع قبل تتبعه باستخدام Gitإظهار الملف داخل Working Directory كملف غير متتبع في Git

الخطوة الثانية: إضافة الملفات إلى Staging Area

بعد التأكد من الملفات التي تريد حفظها في النسخة القادمة، استخدم أمر git add لإرسالها إلى منطقة التجهيز. مثال:

git add chapter1.txt

وإذا نفذت الأمر git status مرة أخرى، فسترى أن الملف أصبح جاهزاً للدخول في الالتزام التالي.

من المهم هنا فهم نقطة دقيقة: الملفات لا تنتقل فعلياً من Working Directory إلى Staging Area، بل تُنسخ حالتها الحالية إلى منطقة التجهيز. لذلك تستطيع الاستمرار في تعديل الملف بعد إضافته إذا احتجت إلى ذلك.

إضافة ملف إلى منطقة التجهيز Staging Area في Gitالملف أصبح داخل Staging Area بعد تنفيذ git add

الخطوة الثالثة: إنشاء commit

بعد تجهيز الملفات، يمكنك حفظ النسخة الجديدة من المشروع باستخدام الأمر:

git commit -m "this is the first commit"

الخيار -m يُستخدم لإضافة رسالة تصف التغييرات التي يتضمنها commit. ومن الأفضل أن تكون الرسالة واضحة ومحددة لتسهيل مراجعة السجل لاحقاً.

تنفيذ أول commit في Git مع رسالة توضح التغيير

لاستعراض جميع الالتزامات الموجودة في المشروع، استخدم الأمر:

git log

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

عرض سجل الالتزامات باستخدام git log بعد أول commit

كل commit يملك معرّفاً فريداً يُعرف باسم commit hash، وهو سلسلة من 40 حرفاً ورقماً تُستخدم للإشارة إلى هذا الالتزام بدقة.

ما هو سجل الالتزامات في Git؟

يتكون المستودع عادة من سلسلة من commits، ويرتبط كل commit غالباً بالالتزام الذي سبقه. هذا التسلسل هو ما يشكل Commit History، وهو بمثابة خط زمني يوضح كيف تطور المشروع خطوة بخطوة.

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

تمثيل بسيط لسجل الالتزامات Commit History في Git

ما هو الفرع Branch في Git؟

الفرع في Git هو مؤشر يشير إلى commit معيّن. والفرع الافتراضي في كثير من المشاريع يكون باسم main أو أحياناً master.

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

يمكنك عرض قائمة الفروع داخل المستودع باستخدام الأمر:

git branch

إظهار الفرع الرئيسي داخل مجلد .git وربطه بأحدث commitعرض الفروع الحالية في Git باستخدام أمر git branch

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

تطور سجل الالتزامات وتحرك الفرع الرئيسي إلى أحدث commit في Git

ملخص عملي لأهم أوامر Git للمبتدئين

الأمر الوظيفة
git --version التحقق من تثبيت Git ومعرفة الإصدار
git init تهيئة مستودع Git جديد داخل المشروع
ls -a عرض الملفات المخفية مثل .git
git status معرفة حالة الملفات والتغييرات الحالية
git add chapter1.txt إضافة ملف إلى منطقة التجهيز
git commit -m "message" إنشاء التزام جديد مع رسالة وصفية
git log استعراض سجل الالتزامات
git branch عرض الفروع الموجودة في المستودع

نصائح مهمة لتعلم Git بسرعة

  • ابدأ بالأوامر الأساسية فقط ولا تشتت نفسك بالأوامر المتقدمة مبكراً.
  • طبّق ما تتعلمه على مشروع صغير حقيقي بدلاً من الاكتفاء بالقراءة النظرية.
  • استخدم git status كثيراً، لأنه من أكثر الأوامر فائدة لفهم وضع المشروع الحالي.
  • احرص على كتابة رسائل commit واضحة ومفهومة.
  • تعلم الفروع مبكراً، لأنها جزء أساسي من العمل الاحترافي والتعاوني.

الخلاصة التقنية

Git ليس مجرد أداة لحفظ الشيفرة، بل هو نظام متكامل لإدارة تطور المشروع، وتنظيم التعاون، وتقليل المخاطر عند حدوث الأخطاء. من الناحية التقنية، تكمن قوته في اعتماده على سجل دقيق للتغييرات، ومفهوم staging الذي يمنح المطور تحكماً واعياً فيما يتم حفظه، إضافة إلى الفروع التي تجعل تطوير الميزات واختبارها أكثر مرونة. إذا أتقنت الأساسيات مثل repository وcommit وbranch، فستمتلك قاعدة قوية للانتقال لاحقاً إلى مفاهيم أكثر تقدماً مثل merge وrebase والعمل الجماعي الاحترافي.

اترك تعليقاً

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