أول خطواتك في Git وGitHub: دليل عملي للتحكم بالإصدار والتعاون
مقدمة سريعة — لماذا تتعلم Git وGitHub؟
إذا كنت مطوّراً أو تدرس البرمجة أو تعمل على مشاريع فردية أو جماعية، فـGit هو أداة التحكم بالإصدار التي سترافقك طوال حياتك المهنية، وGitHub هو منصة مستضافة تُسهّل التعاون، مراجعة الكود، وإدارة الإصدارات. في هذا الدليل العملي ستتمرّن على أساسيات Git محلياً وتتعلم كيف تنشئ وتشارك مستودعات على GitHub، وتتعامل مع الفروع وطلبات الدمج (Pull Requests).
ما الذي ستتعلمه عملياً؟
- تثبيت Git وإعداد بيانات المستخدم.
- إنشاء مستودع محلي وربطه بمستودع GitHub.
- أوامر يومية: add, commit, push, pull، وbranch.
- تدفق عمل شائع: feature branch + Pull Request.
- نصائح لرسائل الالتزام وحل التعارضات.
الوقت التقريبي: من 30 دقيقة لتجربة الأوامر الأساسية إلى يوم واحد لتطبيق سير عمل متكامل مع Pull Requests.
البدء العملي — التثبيت والإعداد وإنشاء أول مستودع
1. تثبيت Git
على أنظمة macOS استخدم Homebrew:
brew install gitعلى Ubuntu/Debian: sudo apt update
sudo apt install gitعلى Windows يمكنك تحميل Git for Windows وتثبيته من الموقع الرسمي أو استخدام إدارة الحزم مثل winget.2. إعداد بيانات المستخدم الأساسية
بعد التثبيت عيّن اسمك وبريدك الإلكتروني (يظهران في سجلات الالتزام):
git config --global user.name "اسمك"
git config --global user.email "email@example.com"3. إنشاء مستودع محلي
لتحويل مجلد مشروع إلى مستودع Git:
cd path/to/project
git init
git add .
git commit -m "Initial commit"4. إنشاء مستودع على GitHub وربطها
- أنشئ مستودع جديد على GitHub (Public أو Private).
- اربط المستودع المحلي بالمستودع البعيد:
git remote add origin git@github.com:username/repo.git # أو رابط HTTPS
git branch -M main
git push -u origin mainملاحظة عن SSH vs HTTPS: استخدام SSH يوفر دخولاً بدون كتابة كلمة مرور في كل مرة بعد إضافة مفتاح SSH (الأكثر راحة للمطوّرين). لإنشاء مفتاح SSH:
ssh-keygen -t ed25519 -C "email@example.com"
# ثم انسخ المحتوى من ~/.ssh/id_ed25519.pub وألصقه في GitHub → Settings → SSH and GPG keys5. ملف .gitignore
أنشئ ملف .gitignore لاستبعاد ملفات النظام والملفات المؤقتة (مثلاً node_modules/, .env, أو ملفات IDE). مثال بسيط:
node_modules/
.env
.DS_Store
dist/تدفق العمل اليومي: الفروع، الدمج، وطلبات السحب
1. لماذا نستخدم الفروع (Branches)؟
الفروع تسمح بتطوير ميزات جديدة بالتوازي دون التأثير على الكود المستقر في الفرع الرئيسي (main). عادةً تستخدم فرق العمل نمط feature branch لكل ميزة أو إصلاح.
2. أوامر فروع أساسية
git checkout -b feature/awesome # إنشاء والانتقال إلى فرع جديد
# بعد التعديل
git add .
git commit -m "feat: add awesome feature"
git push -u origin feature/awesome3. إنشاء Pull Request
بعد الدفع إلى GitHub، افتح Pull Request لدمج الفرع في main. اطلب مراجعة زميل، اشرح التغييرات، وارفق اختبارات أو لقطات شاشة إن وُجدت.
4. حل التعارضات (Conflicts)
إذا ظهر تعارض عند الدمج، قم بعمل:
git checkout main
git pull origin main
git checkout feature/awesome
git merge main
# حل التعارضات يدوياً في الملفات المتأثرة
git add
git commit -m "fix: resolve merge conflicts"
git push 5. إرشادات عملية
- اكتب رسائل التزام واضحة: نوع: وصف قصير — مثلاً feat: add login أو fix: handle null response.
- اجعل الالتزامات صغيرة ومنطقية لتسهيل المراجعة.
- استخدم Branch Protection Rules على GitHub لحماية الفرع الرئيسي وفرض مراجعات قبل الدمج.
- استفد من Issues وProjects لتنظيم العمل وربط الالتزامات بالمهام.
6. ماذا بعد؟ ميزات متقدمة
عندما تتقن الأساسيات، تعلّم Git rebase (بحذر)، العلامات (tags) لإصدارات الإنتاج، وGitHub Actions لأتمتة الاختبارات والنشر.
خاتمة ونصائح سريعة
- تدرّب بانتظام على سيناريوهات بسيطة — إنشاء فرع، إجراء تغييرات، وفتح Pull Request.
- اقرأ سجل الالتزامات (git log) لتفهم تاريخ المشروع.
- استخدم أدوات بصريّة مثل GitKraken أو واجهة Git في VS Code إن رغبت بواجهة رسومية.
إذا رغبت، أستطيع توليد ملف مختصر للـ cheatsheet يحتوي أوامر أساسية قابلة للطباعة أو إنشاء مثال عملي صغير نطبقه خطوة بخطوة على مشروع حقيقي.