ما هو Git؟

Git هو نظام للتحكم بالإصدارات (Version Control System) مفتوح المصدر صممه لينوس تورفالدس في عام 2005. يتيح Git للمطورين تتبع التغييرات في الكود المصدري خلال عملية تطوير البرمجيات. إنه مصمم للتعامل مع مشاريع من جميع الأحجام بسرعة وكفاءة عالية.

يعتمد Git على نظام لامركزي (Distributed) مما يعني أن كل مطور لديه نسخة كاملة من المستودع (Repository) على جهازه المحلي، مما يسمح بالعمل دون اتصال بالإنترنت والمزامنة لاحقاً عند توفر الاتصال.

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

هناك عدة مزايا لاستخدام Git في مشاريةك البرمجية:

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

الفرق بين Git و GitHub

Git هو نظام التحكم بالإصدارات نفسه، أي البرمجية التي تقوم بتتبع التغييرات في الكود.

GitHub هو خدمة استضافة على الإنترنت تستخدم Git وتضيف واجهة مستخدم رسومية وميزات إضافية مثل تتبع المشكلات (Issue Tracking) وطلبات السحب (Pull Requests) والتعاون الاجتماعي. هناك منصات مشابهة مثل GitLab وBitbucket.

تثبيت Git

نظام Windows

قم بتنزيل المثبت من الموقع الرسمي واتبع خطوات التثبيت.

نظام macOS

brew install git

نظام Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install git

التحقق من التثبيت

git --version

الأوامر الأساسية في Git

إعداد Git لأول مرة

git config --global user.name "اسمك"
git config --global user.email "بريدك الإلكتروني"

إنشاء مستودع جديد

git init

نسخ مستودع موجود

git clone https://github.com/username/repository.git

إضافة الملفات المتغيرة

git add filename.js    # لإضافة ملف محدد
git add .             # لإضافة جميع الملفات المتغيرة

حفظ التغييرات (Commit)

git commit -m "وصف للتغييرات التي قمت بها"

عرض حالة الملفات

git status

عرض سجل التغييرات

git log

العمل مع الفروع (Branches)

إنشاء فرع جديد

git branch branch-name

الانتقال إلى فرع

git checkout branch-name

إنشاء والانتقال إلى فرع جديد

git checkout -b new-branch-name

دمج فرع مع الفرع الحالي

git merge branch-name

عرض قائمة الفروع

git branch

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

إضافة مستودع بعيد

git remote add origin https://github.com/username/repository.git

رفع التغييرات للمستودع البعيد

git push -u origin main

جلب التحديثات من المستودع البعيد

git pull origin main

عرض المستودعات البعيدة

git remote -v

سير العمل النموذجي باستخدام Git

  1. إنشاء فرع جديد للميزة الجديدة:
    git checkout -b feature-x
  2. إجراء التغييرات وحفظها:
    git add .
    git commit -m "إضافة ميزة X"
  3. رفع الفرع للمستودع البعيد:
    git push origin feature-x
  4. إنشاء طلب سحب (Pull Request) على GitHub
  5. بعد مراجعة الكود والموافقة عليه، يتم دمج الفرع:
    git checkout main
    git pull origin main
    git merge feature-x
    git push origin main

نصائح متقدمة في Git

استعادة التغييرات المحلية غير المحفوظة

git stash

استرجاع التغييرات المخزنة

git stash pop

إعادة ضبط الفرع الحالي لنقطة محددة

git reset --hard commit-hash

تحديث التزام سابق

git commit --amend -m "رسالة الالتزام المعدلة"

إظهار الاختلافات بين الفروع

git diff branch1..branch2

نصيحة احترافية

قم دائماً بكتابة رسائل التزام (Commit messages) واضحة ومفهومة تشرح ما تم تغييره ولماذا. هذا يساعد كثيراً عند مراجعة التاريخ لاحقاً.

الختام

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

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