0%
الدرس 1 من 10
اكتمل 10%

مقدمة في Git

تعرّف على Git وتاريخه ومزاياه والمفاهيم الأساسية للتحكم في الإصدارات.

مقدمة في Git

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

ما هو Git؟

Git هو نظام موزّع للتحكم في الإصدارات (DVCS - Distributed Version Control System) أنشأه لينوس تورفالدز عام 2005 لتطوير نواة Linux. وعلى عكس الأنظمة المركزية، يتيح Git لكل مطوّر أن يملك نسخة كاملة من تاريخ المشروع على جهازه المحلي.

الخصائص الرئيسية

  • موزّع: كل نسخة مستنسخة (clone) هي مستودع كامل
  • سريع: عمليات محلية فائقة السرعة
  • السلامة: التحقق عبر مجموع التحقق SHA-1
  • فروع خفيفة: إنشاء الفروع ودمجها بكفاءة
  • Staging Area: منطقة وسيطة لتحضير الـ commits

التاريخ والتطور

قبل Git (1991-2005)

  • 1991-2002: تطوير نواة Linux عبر الرقع (patches) والأرشيفات
  • 2002-2005: استخدام BitKeeper (برنامج مملوك)
  • 2005: نشوب خلاف مع BitKeeper والحاجة إلى بديل

ولادة Git (2005)

أنشأ لينوس تورفالدز Git بأهداف محددة:

  • سرعة استثنائية
  • تصميم بسيط ومتين
  • دعم التطوير غير الخطي
  • موزّع بالكامل
  • القدرة على إدارة المشاريع الكبيرة

لماذا نستخدم Git؟

المزايا للمطورين

  1. تاريخ كامل

    • تتبّع جميع التعديلات
    • إمكانية الرجوع إلى أي إصدار
    • المقارنة بين الإصدارات
  2. تعاون فعّال

    • العمل المتزامن على المشروع نفسه
    • الدمج التلقائي للتعديلات
    • حل موجَّه للتعارضات
  3. الفروع والتجريب

    • إنشاء سريع للفروع
    • اختبار الميزات الجديدة
    • دمج انتقائي للتحسينات
  4. نسخ احتياطي موزّع

    • كل نسخة مستنسخة هي نسخة احتياطية
    • لا توجد نقطة فشل وحيدة
    • استرجاع سهل عند حدوث مشكلة

المفاهيم الأساسية

المستودع (Repository)

يحتوي مستودع Git على:

  • التاريخ الكامل للمشروع
  • جميع الفروع والوسوم (tags)
  • إعدادات المشروع
  • البيانات الوصفية لـ Git

الحالات الثلاث للملفات

git addgit commitgit checkoutWorking DirectoryStaging AreaGit Repository
  1. Working Directory: مجلد العمل الذي يحتوي ملفاتك
  2. Staging Area: منطقة تحضير الـ commits
  3. Git Repository: قاعدة بيانات Git التي تحتوي على التاريخ

الـ Commits

يمثّل الـ commit:

  • لقطة للمشروع في لحظة معيّنة
  • رسالة وصفية للتغييرات
  • المؤلف والتاريخ
  • معرّفًا فريدًا (hash من نوع SHA-1)

Git مقابل الأنظمة الأخرى

مقارنة مع SVN

الجانبGitSVN
البنيةموزّعةمركزية
السرعةسريع جدًاأبطأ
الفروعخفيفة وسريعةثقيلة
العمل دون اتصالكاملمحدود
السلامةمجاميع تحققأساسية

مزايا Git على الأنظمة المركزية

  • الاستقلالية: عمل كامل دون اتصال بالإنترنت
  • الأداء: عمليات محلية فورية
  • المرونة: سير عمل (workflows) قابلة للتكيّف
  • المتانة: مقاومة للأعطال

حالات الاستخدام النموذجية

التطوير الشخصي

  • تتبّع تعديلات مشاريعك
  • التجريب باستخدام الفروع
  • حفظ نسخة احتياطية من عملك

فرق التطوير

  • التعاون على مشاريع معقدة
  • التكامل المستمر
  • مراجعة الشيفرة عبر pull requests

مشاريع المصدر المفتوح

  • المساهمة في المشاريع القائمة
  • إدارة الـ forks والـ pull requests
  • صيانة إصدارات متعددة

منظومة Git

منصات الاستضافة

  • GitHub: الأكثر شعبية وغنية بالميزات
  • GitLab: بديل متكامل مع CI/CD مدمج
  • Bitbucket: تكامل مع منظومة Atlassian

الأدوات الرسومية

  • GitKraken: واجهة حديثة وبديهية
  • SourceTree: مجاني، من Atlassian
  • GitHub Desktop: بسيط وفعّال

المتطلبات المسبقة لهذه الدورة

المعارف الموصى بها

  • الاستخدام الأساسي لسطر الأوامر
  • مفاهيم البرمجة الأساسية
  • فهم أنظمة الملفات

الأدوات اللازمة

  • طرفية (Command Prompt أو PowerShell أو Terminal)
  • محرّر نصوص أو بيئة تطوير متكاملة (IDE)
  • تثبيت Git على نظامك

هيكل الدورة

ستقودك هذه الدورة عبر:

  1. الإعداد: التثبيت والضبط الأولي
  2. الأوامر الأساسية: أساسيات الاستخدام اليومي
  3. الفروع والدمج: إدارة متقدمة للشيفرة
  4. GitHub: التعاون والاستضافة
  5. سير العمل المتقدمة: منهجيات احترافية

تمرين عملي

التحقق من بيئتك

افتح الطرفية ونفّذ:

# Vérifier si Git est installé
git --version

# Si Git n'est pas installé, vous verrez une erreur
# Sinon, vous verrez quelque chose comme : git version 2.x.x

تأمّل

قبل المتابعة، فكّر في هذه الأسئلة:

  1. ما المشاريع التي يمكنك إدارتها باستخدام Git؟
  2. هل سبق أن فقدت شيفرة برمجية عن طريق الخطأ؟
  3. كيف تتعاون حاليًا على المشاريع؟

موارد إضافية

التوثيق الرسمي

دروس تفاعلية

المجتمع

الخاتمة

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

في الدرس القادم سنثبّت Git ونهيّئ بيئة التطوير الخاصة بك لتبدأ رحلتك مع هذه الأداة القوية.


وقت القراءة المقدّر: 15 دقيقة
المستوى: مبتدئ
الخطوة التالية: الإعداد والخطوات الأولى