هل سبق لك أن فقدت كوداً كنت تعمل عليه لساعات بسبب خطأ بسيط؟ أو احتجت للتعاون مع زميل في مشروع برمجي لكن وجدت نفسك تبعث ملفات zip ذهاباً وإياباً؟ إذا كانت إجابتك نعم، فأنت بحاجة ماسة إلى تعلم Git و GitHub.
في عام 2026، أصبحت معرفة Git و GitHub ليست ميزة إضافية بل شرط أساسي لأي مبرمج يريد العمل بشكل احترافي. في هذا الدليل الشامل، سنأخذك من الصفر حتى الاحتراف في إدارة الإصدارات والتعاون على المشاريع.
💡 الحقيقة: 94% من الشركات التقنية تتطلب معرفة Git عند توظيف المبرمجين. تعلمها الآن يعني فتح أبواب لا حصر لها.
🤔 ما هو Git؟ وما الفرق بين Git و GitHub؟
قبل أن نبدأ، لنُوضح الفرق الأساسي الذي يخلطه الكثير من المبتدئين:
| Git | GitHub |
|---|---|
| نظام تحكم بالإصدارات (Version Control System) | منصة استضافة للمشاريع التي تستخدم Git |
| يعمل محلياً على جهازك | يعمل على الإنترنت (سحابي) |
| مجاني ومفتوح المصدر | خدمة مجانية مع خطط مدفوعة |
| يُستخدم لـ تتبع التغييرات في الكود | يُستخدم لـ التعاون ومشاركة الكود |
| لا يحتاج اتصال إنترنت | يحتاج اتصال إنترنت |
ببساطة: Git هو الأداة، و GitHub هو المكان الذي تستخدم فيه الأداة.
📥 التثبيت والإعداد
تثبيت Git
أول خطوة هي تثبيت Git على جهازك. الطريقة تختلف حسب نظام التشغيل:
Windows:
https://git-scm.com/download/win
# 2. افتح Command Prompt وتحقق من التثبيت:
git --version
git version 2.43.0
macOS:
brew install git
# أو حمّل المثبت من الموقع الرسمي
Linux (Ubuntu/Debian):
sudo apt install git
إعداد الهوية
بعد التثبيت، أخبر Git من أنت:
git config --global user.email "بريدك@example.com"
# تحقق من الإعدادات:
git config --list
🚀 أوامر Git الأساسية
هذه هي الأوامر التي ستستخدمها يومياً. احفظها جيداً:
📁 git init — إنشاء مستودع جديد
يُستخدم لبدء تتبع Git في مجلد جديد:
cd my-project
git init
Initialized empty Git repository in /my-project/.git/
👁️ git status — معرفة حالة الملفات
يُظهر لك أي ملفات تم تعديلها وأيها جاهز للحفظ:
On branch main
Changes not staged for commit:
modified: index.html
modified: style.css
➕ git add — إضافة ملفات للمرحلة
يُخبر Git بأي ملفات تريد حفظ تغييراتها:
git add index.html
# إضافة جميع الملفات المُعدّلة:
git add .
# إضافة جميع ملفات نوع معين:
git add *.js
💾 git commit — حفظ التغييرات
يُحفظ التغييرات في تاريخ المشروع مع رسالة توضيحية:
# أو إضافة وحفظ في خطوة واحدة:
git commit -am "تعديل تصميم الهيدر"
نصيحة: اكتب رسائل واضحة وموجزة تصف ما فعلته.
📜 git log — عرض تاريخ التغييرات
يُظهر لك جميع الـ commits السابقة:
# عرض مختصر:
git log --oneline
# عرض رسومي:
git log --graph --oneline --all
🌿 الفروع (Branches): العمل بذكاء
الفروع هي أحد أقوى ميزات Git. تخيل أنك تعمل على ميزة جديدة لكنك لا تريد كسر الكود الحالي. الحل: أنشئ فرعاً جديداً!
git branch feature-login
# الانتقال للفرع الجديد:
git checkout feature-login
# أو في خطوة واحدة:
git checkout -b feature-login
# عرض جميع الفروع:
git branch
# العودة للفرع الرئيسي:
git checkout main
🌟 الاستراتيجية المثالية: الفرع الرئيسي (main) يبقى مستقراً دائماً. كل ميزة جديدة أو إصلاح يعمل على فرع منفصل، ثم يُدمج بعد المراجعة.
🔀 الدمج (Merge): دمج الفروع
بعد الانتهاء من العمل على فرع، حان وقت دمج التغييرات في الفرع الرئيسي:
git checkout main
# 2. دمج الفرع الجديد:
git merge feature-login
# 3. حذف الفرع بعد الدمج:
git branch -d feature-login
🚨 حل التعارضات (Merge Conflicts)
أحياناً يتعارض تغييران على نفس السطر. Git لا يختار نيابة عنك — يعرض لك التعارض:
console.log("الكود القديم");
=======
console.log("الكود الجديد");
>>>>>>> feature-login
قُم بتحرير الملف يدوياً، احتفظ بالجزء الصحيح، ثم:
git commit -m "حل تعارض الدمج في ملف index.js"
☁️ GitHub: مشاركة الكود مع العالم
الآن بعد أن عرفت Git، حان وقت رفع مشاريعك على GitHub.
إنشاء حساب و مستودع
سجّل في github.com وأنشئ مستودعاً جديداً (New Repository). اختر اسماً واضحاً واجعله عاماً (Public).
ربط المستودع المحلي بـ GitHub
git remote add origin https://github.com/اسمك/المشروع.git
# التحقق:
git remote -v
رفع الكود (Push)
git push -u origin main
# في المرات القادمة:
git push
تحميل الكود (Pull)
git pull origin main
# أو باختصار:
git pull
🤝 التعاون على GitHub
Fork & Pull Request
للمشاركة في مشاريع مفتوحة المصنع:
- Fork: انسخ المشروع إلى حسابك
- Clone: