Git Workflow احترافي — دليل شامل 2026
دليل عملي مفصل لـ Git Workflow الاحترافي — Git Flow، GitHub Flow، Trunk-based، وأفضل الممارسات
في المقال السابق، تعلمت حل التعارضات. الآن سنتعلم Git Workflow — وهو نظام العمل الذي يستخدمه الفريق المحترف.
في هذا الدليل العملي، سنأخذك خطوة بخطوة لفهم Workflows المختلفة، مع تمارين وحلول.
ما هو Git Workflow؟
Git Workflow هو طريقة منظمة لاستخدام Git في فريق.
يشمل:
- كيف تُنشئ الفروع.
- كيف تدمجها.
- من يوافق على الدمج.
- كيف تُنشر الإصدارات.
الهدف: تقليل الفوضى، وزيادة الإنتاجية.
أشهر Workflows
| Workflow | الوصف | الاستخدام |
|---|---|---|
| Git Flow | فروع متعددة | الإصدارات الكبيرة |
| GitHub Flow | فرع main + feature | النشر المستمر |
| Trunk-based | فرع رئيسي واحد | الفرق السريعة |
| GitLab Flow | بيئات متعددة | DevOps |
1. Git Flow
الأكثر تقليدية — مناسب للمشاريع الكبيرة.
الفروع:
| الفرع | الوصف |
|---|---|
| main | الإصدارات المستقرة |
| develop | التطوير الرئيسي |
| feature/* | ميزات جديدة |
| release/* | تحضير الإصدار |
| hotfix/* | إصلاحات عاجلة |
الرسم البياني:
main ───●───────────────●────────●───
\ / \
release \ ● ●
\ / \
develop ────●───●───●───●────────────────●───
/ / /
feature ●───●───●
مثال عملي:
# 1. إعداد الفروع
git checkout -b develop main
# 2. ميزة جديدة
git checkout -b feature/login develop
# ... عمل
git checkout develop
git merge feature/login
git branch -d feature/login
# 3. تحضير إصدار
git checkout -b release/1.0.0 develop
# ... اختبار
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "الإصدار 1.0.0"
git checkout develop
git merge release/1.0.0
# 4. إصلاح عاجل
git checkout -b hotfix/1.0.1 main
# ... إصلاح
git checkout main
git merge hotfix/1.0.1
git tag -a v1.0.1 -m "الإصدار 1.0.1"
git checkout develop
git merge hotfix/1.0.1
المميزات:
- ✅ منظم جداً.
- ✅ مناسب للإصدارات.
- ✅ فصل التطوير عن الإنتاج.
العيوب:
- ❌ معقد.
- ❌ بطيء.
- ❌ غير مناسب للنشر المستمر.
2. GitHub Flow
الأبسط — مناسب للنشر المستمر.
القواعد:
mainدائماً مستقر.- فرع جديد لكل ميزة.
- Pull Request للمراجعة.
- نشر بعد الدمج.
الرسم:
main ───●───────●────────────●───────●───
\ / \ /
feature ●───● ●───●
مثال عملي:
# 1. ابدأ من main
git checkout main
git pull
# 2. أنشئ فرعاً
git checkout -b feature/new-feature
# 3. اعمل
git add .
git commit -m "feat: ميزة جديدة"
git push -u origin feature/new-feature
# 4. افتح PR
# ... مراجعة
# 5. ادمج على GitHub
# 6. ارجع محلياً
git checkout main
git pull
git branch -d feature/new-feature
المميزات:
- ✅ بسيط.
- ✅ سريع.
- ✅ مناسب للنشر المستمر.
العيوب:
- ❌ لا يفصل بين الإصدارات.
- ❌ لا يدعم hotfixes بسهولة.
3. Trunk-based Development
الأسرع — مناسب للفرق الخبيرة.
القواعد:
- فرع واحد:
main. - دمج يومي.
- فروع قصيرة (< يوم).
- Feature flags.
الرسم:
main ───●───●───●───●───●───●───●───
\ / \ / \ /
feature ●─● ●─● ●─●
مثال عملي:
# كل يوم
git checkout main
git pull
git checkout -b feat/tiny-change
# ... عمل صغير
git commit -m "feat: تغيير صغير"
git push
# PR سريع
# دمج
المميزات:
- ✅ سريع جداً.
- ✅ تعارضات أقل.
- ✅ نشر مستمر.
العيوب:
- ❌ يحتاج فريق خبير.
- ❌ يحتاج اختبارات قوية.
- ❌ يحتاج feature flags.
مقارنة
| المعيار | Git Flow | GitHub Flow | Trunk |
|---|---|---|---|
| التعقيد | 🔴 عالي | 🟢 منخفض | 🟢 منخفض |
| السرعة | 🐢 بطيء | 🚀 سريع | ⚡ أسرع |
| الفروع | 5 أنواع | main + feature | main فقط |
| المناسب لـ | الإصدارات | النشر المستمر | الفرق السريعة |
| الأخطاء | قليل | متوسط | أكثر |
التوصية:
- مبتدئ: GitHub Flow.
- فريق متوسط: GitHub Flow.
- فريق كبير: Git Flow.
- فريق خبير: Trunk-based.
أفضل الممارسات
1. أسماء الفروع
✅ feature/user-login
✅ fix/header-bug
✅ hotfix/security-patch
✅ release/1.0.0
❌ my-branch
❌ test123
❌ work
2. رسائل Commits
✅ feat: إضافة تسجيل الدخول
✅ fix: إصلاح خطأ في النموذج
✅ docs: تحديث README
❌ تحديث
❌ fix
❌ asdf
3. حجم PR
- ✅ أقل من 400 سطر.
- ✅ ميزة واحدة.
- ✅ commit واحد إذا أمكن.
4. المراجعة
- مراجعة واحدة على الأقل.
- رد خلال 24 ساعة.
- تعليقات بناءة.
5. الاختبار
# قبل PR
npm test
npm run lint
npm run build
6. CI/CD
GitHub Actions:
name: CI
on:
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm test
- run: npm run build
النتيجة: اختبار تلقائي لكل PR.
7. حماية الفرع
على GitHub:
Settings → Branches → Add rule
- ✅ Require pull request.
- ✅ Require approvals.
- ✅ Require status checks.
- ✅ Require conversation resolution.
النتيجة: لا يمكن دفع main مباشرة.
مثال عملي: فريق صغير
السيناريو: 3 مطورين
القواعد:
- GitHub Flow.
- PR مع مراجعة.
- اختبارات CI.
- حماية main.
دورة العمل اليومية:
# 1. ابدأ يومك
git checkout main
git pull
# 2. اعمل على ميزة
git checkout -b feature/new-page
# ... عمل
git add .
git commit -m "feat: صفحة جديدة"
# 3. ارفع
git push -u origin feature/new-page
# 4. افتح PR
# ... مراجعة
# 5. بعد الموافقة
# ادمج على GitHub
# 6. ابدأ ميزة جديدة
git checkout main
git pull
git checkout -b feature/another
تمارين عملية
تمرين 1: GitHub Flow
اعمل بـ GitHub Flow.
الحل: (راجع المثال أعلاه)
تمرين 2: Git Flow
اعمل بـ Git Flow.
الحل:
git checkout -b develop main
git checkout -b feature/x develop
# ... عمل
git checkout develop
git merge feature/x
تمرين 3: حماية الفرع
احمِ main.
الحل:
- Settings → Branches.
- Add rule → main.
- Require PR + approvals.
تمرين 4: CI
أضف GitHub Actions.
الحل: (راجع .github/workflows/ci.yml)
تمرين 5: أسماء الفروع
اكتب 5 أسماء احترافية.
الحل:
feature/user-auth
fix/cart-total
docs/api-guide
refactor/utils
hotfix/security
تمرين 6: رسائل Commits
اكتب 5 commits احترافية.
الحل:
feat: إضافة شريط البحث
fix: إصلاح خطأ في التحميل
docs: تحديث README
refactor: تقسيم الملفات
test: إضافة اختبارات
تمرين 7: PR Template
أنشئ قالب PR.
الحل: .github/pull_request_template.md
تمرين 8: مشروع كامل
طبّق Workflow كامل.
الحل: (راجع المثال أعلاه)
حل المشاكل الشائعة
🔴 المشكلة 1: الفريق لا يتبع Workflow
الحل:
- وثّق Workflow في
CONTRIBUTING.md. - استخدم حماية الفرع.
- درّب الفريق.
🔴 المشكلة 2: PRs كثيرة ومعلقة
الحل:
- حدد حداً أقصى للـ PRs.
- راجع يومياً.
- أغلق القديمة.
🔴 المشكلة 3: اختبارات تفشل
الحل:
- شغّل الاختبارات محلياً قبل PR.
- أضف CI.
🔴 المشكلة 4: تعارضات كثيرة
الحل:
- فروع قصيرة.
- حدّث من main يومياً.
- PRs صغيرة.
🔴 المشكلة 5: main غير مستقر
الحل:
- حماية الفرع.
- اختبارات إلزامية.
- مراجعة قبل الدمج.
جدول مكونات Workflow
| المكوّن | الوصف |
|---|---|
| Branching | استراتيجية الفروع |
| Commits | رسائل احترافية |
| Pull Requests | مراجعة الكود |
| Review | موافقة قبل الدمج |
| CI/CD | اختبار ونشر تلقائي |
| Protection | حماية الفروع |
| Releases | إصدارات منظمة |
قائمة تحقق نهائية
| المهمة | الحالة |
|---|---|
| فهم Git Flow | ⬜ |
| فهم GitHub Flow | ⬜ |
| فهم Trunk-based | ⬜ |
| اختيار Workflow مناسب | ⬜ |
| إعداد CI/CD | ⬜ |
| حماية الفرع | ⬜ |
| حل التمارين الثمانية | ⬜ |
ماذا بعد هذا المقال؟
الآن بعد أن أتقنت Workflow، أنت جاهز للمقال الأخير:
- مشروع تعاوني — تطبيق كامل.
الخلاصة
في هذا المقال، تعلمت:
- ✅ ما هو Git Workflow.
- ✅ Git Flow (التقليدي).
- ✅ GitHub Flow (البسيط).
- ✅ Trunk-based (السريع).
- ✅ أفضل الممارسات.
- ✅ CI/CD.
- ✅ حماية الفروع.
- ✅ حل 8 تمارين عملية.
تذكر: Workflow جيد = فريق منتج = مشروع ناجح.
حل التعارضات في Git — دليل شامل 2026
مشروع Git متكامل — تعاون على مستودع احترافي 2026
📚 مقالات ذات صلة
مشروع Git متكامل — تعاون على مستودع احترافي 2026
مشروع عملي شامل للتعاون على مستودع Git — فروع، PRs، مراجعة، CI/CD، وإصدارات
حل التعارضات في Git — دليل شامل 2026
دليل عملي مفصل لحل التعارضات في Git — أنواع التعارضات، الأخطاء الشائعة، وأدوات المساعدة
Pull Requests في Git — دليل شامل 2026
دليل عملي مفصل لـ Pull Requests — إنشاء، مراجعة، دمج، وأفضل الممارسات