فروع Git

1 دقيقة

جدول المحتويات

  1. لماذا الفروع؟
  2. الفروع قيد العمل
  3. الدمج مقابل إعادة الأساس
  4. أوامر أساسية
  5. سير العمل الموصى به

1. لماذا الفروع؟

المشكلة بلا فروع:

  • الجميع يبرمج على main
  • فوضى كاملة وتعارضات دائمة
  • شفرة معطّلة باستمرار

الحل: الفروع!

  • main = مستقر دائماً
  • feature-login = تطوّر الاتصال
  • feature-api = زميل يطوّر الـ API
  • hotfix-bug = إصلاح عاجل

كل واحد في ركنه، والدمج عندما يصبح جاهزاً!

العودة إلى جدول المحتويات

2. الفروع قيد العمل

bash
mkdir demo-branches && cd demo-branches
git init

# نقطة الانطلاق
echo "print('App v1.0')" > app.py
git add . && git commit -m "Version initiale"

# إنشاء فرع جديد والانتقال إليه
git checkout -b feature-login
echo "print('Login system')" > login.py
git add . && git commit -m "Add login"

# العودة إلى main
git checkout main
echo "print('App v1.1')" > app.py
git add . && git commit -m "Update main"

# عرض كل الفروع
git branch --all

# دمج الميزة
git merge feature-login

النتيجة: التطويران مدموجان!

العودة إلى جدول المحتويات

3. الدمج مقابل إعادة الأساس

الدمج:

bash
git merge feature-branch    # ينشئ إيداع دمج
  • السجل: يُظهر أن فرعين دُمجا
  • آمن وبسيط

إعادة الأساس:

bash
git rebase main             # «ينقل» إيداعاتك بعد main
  • السجل: خطّي ونظيف
  • أعقد

التوصية: ابدأ بالدمج!

العودة إلى جدول المحتويات

4. أوامر أساسية

الأمرالإجراء
git branchسرد الفروع
git checkout -b <nom>إنشاء + الانتقال إلى الفرع
git checkout <nom>تغيير الفرع
git merge <branche>دمج فرع
git branch -d <nom>حذف فرع
git push origin <nom>دفع فرع

العودة إلى جدول المحتويات

5. سير العمل الموصى به

سير عمل بسيط وفعّال:

  1. ميزة جديدة:

    bash
    git checkout main
    git pull
    git checkout -b feature-nouvelle-fonctionnalite
  2. التطوير:

    bash
    # شفرة، شفرة، شفرة...
    git add .
    git commit -m "Feature terminée"
  3. الدمج:

    bash
    git checkout main
    git merge feature-nouvelle-fonctionnalite
    git branch -d feature-nouvelle-fonctionnalite  # تنظيف

هذا كل شيء! الفروع = تنظيم ونظافة.

العودة إلى جدول المحتويات