ما هو 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
-
إنشاء فرع جديد للميزة الجديدة:
git checkout -b feature-x
-
إجراء التغييرات وحفظها:
git add . git commit -m "إضافة ميزة X"
-
رفع الفرع للمستودع البعيد:
git push origin feature-x
- إنشاء طلب سحب (Pull Request) على GitHub
-
بعد مراجعة الكود والموافقة عليه، يتم دمج الفرع:
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، لا تقلق من الأخطاء! جزء من عملية التعلم هو ارتكاب الأخطاء والتعلم منها. احرص على عمل نسخ احتياطية دورية لمشاريعك المهمة.