تخطَّ إلى المحتوى

🔀 شرح Git

استراتيجيات التفرّع (Git Flow, Trunk-Based)

الدرس 28 من 28· ⏱ 3 دقائق قراءة

لماذا استراتيجية تفرّع؟

بدون استراتيجية، يتحول المستودع إلى فوضى: أفرع مهملة، تعارضات دائمة، نشر خاطئ. الاستراتيجية تنظّم:

  • متى تنشئ فرعًا؟
  • متى تدمج؟
  • كيف تنشر؟

Git Flow — الأقدم والأكثر تنظيمًا

main ────●────────●────────●── (نشر مستقر)
          \      /        /
develop ───●────●────●────●── (تكامل)
            \  /    \  /
feature ─────●      ●──── (ميزات جديدة)
                        \
release ─────────────────●── (تحضير إصدار)
                        /
hotfix ────────────────● (إصلاح عاجل من main)
الفرعالغرض
mainإصدارات مستقرة
developتكامل الميزات
feature/*تطوير ميزة جديدة
release/*تحضير إصدار جديد
hotfix/*إصلاح عاجل من main
# البدء بميزة جديدة
git checkout develop
git checkout -b feature/user-auth

# بعد الانتهاء
git checkout develop
git merge --no-ff feature/user-auth
git branch -d feature/user-auth

متى تستخدم؟ مشاريع كبيرة مع إصدارات دورية (موبايل، مكتبات).

GitHub Flow — الأبسط

main ─────●────────●──────●
           \      /      /
feature ───●────●──────●
  • main دائمًا جاهز للنشر.
  • أنشئ فرعًا من main لأي تغيير.
  • ادفع الفرع وافتح Pull Request.
  • بعد المراجعة، ادمج إلى main وانشر فورًا.
git checkout main
git pull
git checkout -b fix-navbar
# ... تعديلات ...
git push -u origin fix-navbar
# افتح PR → راجع → ادمج → احذف الفرع

متى تستخدم؟ مشاريع SaaS، ويب بنشر مستمر (CI/CD).

Trunk-Based Development — الأسرع

main ──●──●──●──●──●──●──●── (نشر مباشر)
        \  /    \  /
short ──●──●    ●──● (أقل من يوم)
  • كل المطورين يدفعون إلى main عدة مرات يوميًا.
  • الأفرع قصيرة جدًا (ساعات، لا أيام).
  • Feature Flags تفعّل/تعطّل الميزات دون نشر.

متى تستخدم؟ فرق صغيرة، نشر آلي قوي، اختبارات شاملة.

المقارنة

المعيارGit FlowGitHub FlowTrunk-Based
التعقيدعاليمتوسطمنخفض
عدد الأفرع5+ أنواعنوع واحدنوع واحد
تكرار النشرشهري/أسبوعييوميعدة مرات يوميًا
إصلاح عاجلhotfix من mainPR مباشرcommit مباشر
يحتاج CI/CDمفيدضروريأساسي
Feature Flagsلالانعم

التوصية

حالة مشروعكالاستراتيجية
فريق كبير (10+)، إصدارات دوريةGit Flow
فريق صغير، نشر مستمرGitHub Flow
فريق صغير، CI/CD قويTrunk-Based
مشروعك الشخصيGitHub Flow — الأبسط والأسهل

نصائح

  • اختر استراتيجية واحدة والتزم بها.
  • وثّق الاستراتيجية في CONTRIBUTING.md.
  • استخدم --no-ff للدمج للحفاظ على تاريخ واضح.
  • احذف الأفرع بعد دمجها.
  • لا تدمج أبدًا فرعًا لم يُراجَع (Pull Request).

⚠️ الاستراتيجية ليست دينًا — طوّعها لتناسب فريقك. المهم هو الاتساق، ليس الكمال.

🎯 اختبر نفسك في اختبار Git أو انتقل إلى مسار Docker.

شرح استراتيجيات التفرّع (Git Flow, Trunk-Based) — Git بالعربي
استراتيجيات التفرّع (Git Flow, Trunk-Based)Git بالعربي · The Code Fix

📚 لمزيد من التعمّق في Git، راجِع التوثيق الرسمي لـ Git.

هل كان هذا الدرس مفيدًا؟