Git & GitHub📅 2026-11-29⏱ 7 دقائق قراءة🔧 مقال 9 من 10

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

الأبسط — مناسب للنشر المستمر.

القواعد:

  1. main دائماً مستقر.
  2. فرع جديد لكل ميزة.
  3. Pull Request للمراجعة.
  4. نشر بعد الدمج.

الرسم:

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

الأسرع — مناسب للفرق الخبيرة.

القواعد:

  1. فرع واحد: main.
  2. دمج يومي.
  3. فروع قصيرة (< يوم).
  4. 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 FlowGitHub FlowTrunk
التعقيد🔴 عالي🟢 منخفض🟢 منخفض
السرعة🐢 بطيء🚀 سريع⚡ أسرع
الفروع5 أنواعmain + featuremain فقط
المناسب لـالإصداراتالنشر المستمرالفرق السريعة
الأخطاءقليلمتوسطأكثر

التوصية:

  • مبتدئ: 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، أنت جاهز للمقال الأخير:

  1. مشروع تعاوني — تطبيق كامل.

الخلاصة

في هذا المقال، تعلمت:

  • ✅ ما هو Git Workflow.
  • ✅ Git Flow (التقليدي).
  • ✅ GitHub Flow (البسيط).
  • ✅ Trunk-based (السريع).
  • ✅ أفضل الممارسات.
  • ✅ CI/CD.
  • ✅ حماية الفروع.
  • ✅ حل 8 تمارين عملية.

تذكر: Workflow جيد = فريق منتج = مشروع ناجح.

📚 مقالات ذات صلة

Git & GitHub

مشروع Git متكامل — تعاون على مستودع احترافي 2026

مشروع عملي شامل للتعاون على مستودع Git — فروع، PRs، مراجعة، CI/CD، وإصدارات

Git & GitHub

حل التعارضات في Git — دليل شامل 2026

دليل عملي مفصل لحل التعارضات في Git — أنواع التعارضات، الأخطاء الشائعة، وأدوات المساعدة

Git & GitHub

Pull Requests في Git — دليل شامل 2026

دليل عملي مفصل لـ Pull Requests — إنشاء، مراجعة، دمج، وأفضل الممارسات