الفروع في Git — دليل شامل Branches 2026
دليل عملي مفصل للفروع في Git — إنشاء، تبديل، حذف، والعمل على ميزات متعددة
في المقال السابق، تعلمت Commits الاحترافية. الآن سنتعلم الفروع (Branches) — وهي الميزة الأقوى في Git، والتي تسمح بالعمل على ميزات متعددة في نفس الوقت.
في هذا الدليل العملي، سنأخذك خطوة بخطوة لفهم الفروع، مع تمارين وحلول.
ما هو الفرع (Branch)؟
الفرع هو خط مستقل من التطوير.
تشبيه بسيط: تخيل أنك تكتب كتاباً:
- بدون فروع: تكتب كل شيء في نفس المسودة (خطر).
- مع الفروع: كل فصل له مسودة منفصلة. تجرّب بحرية، ثم تدمج الجيد.
الفائدة:
- تجربة بحرية دون التأثير على الكود الأساسي.
- العمل على ميزات متعددة بالتوازي.
- العمل الجماعي دون تعارض.
- الإصلاح السريع للأخطاء.
الفرع الرئيسي (main)
main (أو master سابقاً) هو الفرع الافتراضي والأساسي.
قواعد:
- ✅ يجب أن يكون نظيفاً (كود يعمل).
- ✅ يُحدَّث فقط عبر Merge.
- ❌ لا تعمل مباشرة عليه (في المشاريع الاحترافية).
عرض الفروع
git branch
النتيجة:
* main
* تعني أنك على هذا الفرع.
عرض كل الفروع (المحلية والبعيدة):
git branch -a
إنشاء فرع جديد
1. إنشاء فرع (بدون التبديل)
git branch feature-login
2. إنشاء + التبديل
git checkout -b feature-login
أو (الحديث):
git switch -c feature-login
النتيجة:
Switched to a new branch 'feature-login'
التبديل بين الفروع
1. الطريقة الكلاسيكية
git checkout main
git checkout feature-login
2. الطريقة الحديثة
git switch main
git switch feature-login
الفرق: git switch مخصص للفروع فقط.
حذف فرع
1. حذف فرع (تم دمجه)
git branch -d feature-login
2. حذف فرع (بالقوة)
git branch -D feature-login
⚠️ تحذير: -D يحذف حتى لو لم يُدمج.
3. حذف فرع بعيد
git push origin --delete feature-login
إعادة تسمية فرع
1. إعادة تسمية الفرع الحالي
git branch -m new-name
2. إعادة تسمية فرع آخر
git branch -m old-name new-name
مثال عملي: ميزة جديدة
السيناريو: إضافة صفحة تسجيل دخول
الخطوة 1: ابدأ من main
git checkout main
git pull
الخطوة 2: أنشئ فرعاً للميزة
git checkout -b feature/login
الخطوة 3: اعمل على الميزة
echo "<form>تسجيل الدخول</form>" > login.html
git add .
git commit -m "feat: إضافة صفحة تسجيل الدخول"
الخطوة 4: عدّل مرة أخرى
echo "<style>form { padding: 20px; }</style>" >> login.html
git add .
git commit -m "style: تنسيق صفحة تسجيل الدخول"
الخطوة 5: ارفع الفرع
git push -u origin feature/login
الخطوة 6: ارجع لـ main
git checkout main
النتيجة: main لم يتأثر بالتغييرات!
🎉 الفرع يعمل!
دورة حياة الفرع
| المرحلة | الأمر |
|---|---|
| 1. إنشاء | git checkout -b feature |
| 2. العمل | git add . && git commit |
| 3. الرفع | git push -u origin feature |
| 4. Pull Request | على GitHub |
| 5. المراجعة | Team review |
| 6. الدمج | git merge |
| 7. الحذف | git branch -d feature |
استراتيجيات التسمية
أسماء الفروع الاحترافية:
| النوع | الصيغة | مثال |
|---|---|---|
| ميزة | feature/اسم | feature/login |
| إصلاح | fix/اسم | fix/login-error |
| تحسين | refactor/اسم | refactor/utils |
| وثائق | docs/اسم | docs/api |
| اختبار | test/اسم | test/auth |
| مهمة | chore/اسم | chore/deps |
الفروع البعيدة
1. عرض الفروع البعيدة
git branch -r
2. جلب فروع جديدة
git fetch
3. سحب فرع بعيد
git checkout -b feature origin/feature
أو الحديث:
git switch -c feature origin/feature
4. ربط الفرع المحلي بالبعيد
git push -u origin feature/login
-u = --set-upstream (يربط مرة واحدة).
بعد ذلك:
git push # يعرف مكانه
git pull # يعرف مكانه
أفضل الممارسات
1. فرع واحد لكل ميزة
✅ feature/login
✅ fix/header-bug
✅ docs/readme
❌ my-changes
❌ test123
❌ fix-all
2. حدّث من main بانتظام
git checkout main
git pull
git checkout feature/login
git merge main # أو git rebase main
3. احذف الفروع المدمجة
git branch -d feature/login
4. فرع قصير الأجل
⚠️: الفرع الذي يعيش أسابيع = تعارضات صعبة.
5. لا ترفع main مباشرة
❌ git checkout main
❌ git commit -m "..." # خطأ في المشاريع الجماعية
✅ git checkout -b feature
✅ git commit
✅ git push
✅ Pull Request
تمارين عملية
تمرين 1: إنشاء فرع
أنشئ فرعاً باسم feature-about.
الحل:
git checkout -b feature-about
تمرين 2: عرض الفروع
اعرض كل الفروع.
الحل:
git branch -a
تمرين 3: العمل على فرع
أنشئ ملفاً في الفرع.
الحل:
echo "من نحن" > about.html
git add .
git commit -m "feat: إضافة صفحة من نحن"
تمرين 4: التبديل
انتقل إلى main ثم عد للفرع.
الحل:
git checkout main
git checkout feature-about
تمرين 5: حذف فرع
احذف feature-about.
الحل:
git checkout main
git branch -d feature-about
تمرين 6: إعادة تسمية
أعد تسمية فرع.
الحل:
git branch -m old-name new-name
تمرين 7: رفع فرع
ارفع فرعاً إلى GitHub.
الحل:
git push -u origin feature/login
تمرين 8: مشروع كامل
أنشئ 3 فروع، اعمل عليها، وارفعها.
الحل:
# فرع 1
git checkout -b feature/login
git commit -m "feat: login"
git push -u origin feature/login
# فرع 2
git checkout main
git checkout -b feature/register
git commit -m "feat: register"
git push -u origin feature/register
# فرع 3
git checkout main
git checkout -b fix/header
git commit -m "fix: header"
git push -u origin fix/header
حل المشاكل الشائعة
🔴 المشكلة 1: cannot switch branch: uncommitted changes
السبب: لديك تغييرات غير محفوظة.
الحل:
git stash # احفظ التغييرات
git checkout main # انتقل
git stash pop # ارجع للتغييرات
🔴 المشكلة 2: الفرع لا يُرفع
الحل:
git push -u origin feature-name
🔴 المشكلة 3: branch already exists
الحل:
git branch -d feature-name
git checkout -b feature-name
🔴 المشكلة 4: نسيت على أي فرع أنت
الحل:
git status
النتيجة: On branch feature/login
🔴 المشكلة 5: error: pathspec 'xyz' did not match
السبب: الفرع غير موجود.
الحل:
git branch -a # تأكد من الاسم
جدول أوامر الفروع
| الأمر | الوظيفة |
|---|---|
git branch | عرض الفروع |
git branch -a | عرض كل الفروع |
git checkout -b name | إنشاء + تبديل |
git switch -c name | الحديث |
git checkout name | تبديل |
git branch -d name | حذف (آمن) |
git branch -D name | حذف (قوي) |
git branch -m new | إعادة تسمية |
git push -u origin name | رفع الفرع |
قائمة تحقق نهائية
| المهمة | الحالة |
|---|---|
| فهم الفروع | ⬜ |
| إنشاء فرع | ⬜ |
| التبديل بين الفروع | ⬜ |
| العمل على فرع | ⬜ |
| رفع فرع إلى GitHub | ⬜ |
| حذف الفروع | ⬜ |
| حل التمارين الثمانية | ⬜ |
ماذا بعد هذا المقال؟
الآن بعد أن أتقنت الفروع، أنت جاهز للمقال التالي:
- الدمج (Merge) — دمج الفروع.
- حل التعارضات — Conflict Resolution.
- Pull Requests — العمل الجماعي.
الخلاصة
في هذا المقال، تعلمت:
- ✅ ما هي الفروع.
- ✅ إنشاء وتبديل الفروع.
- ✅ دورة حياة الفرع.
- ✅ الفروع البعيدة.
- ✅ أفضل الممارسات.
- ✅ حل 8 تمارين عملية.
تذكر: الفروع هي الميزة الأقوى في Git. أتقنها.
الـ Commits في Git — دليل شامل 2026
الدمج في Git — دليل شامل Merge 2026
📚 مقالات ذات صلة
مشروع Git متكامل — تعاون على مستودع احترافي 2026
مشروع عملي شامل للتعاون على مستودع Git — فروع، PRs، مراجعة، CI/CD، وإصدارات
Git Workflow احترافي — دليل شامل 2026
دليل عملي مفصل لـ Git Workflow الاحترافي — Git Flow، GitHub Flow، Trunk-based، وأفضل الممارسات
حل التعارضات في Git — دليل شامل 2026
دليل عملي مفصل لحل التعارضات في Git — أنواع التعارضات، الأخطاء الشائعة، وأدوات المساعدة