0Pricing
Frontend Academy · درس

التفرّع: branch وcheckout وmerge

أنشئ فروعًا للميزات، وانتقل بينها، وادمج الفروع مجددًا في main، وحلّ تعارضات الدمج البسيطة.

التفرّع: branch وcheckout وmerge درس مجاني في Frontend Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Frontend Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Frontend Academy 4 دروس في المجموع.

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

تتيح الفروع تطوير ميزات متعددة وإصلاحات للأخطاء بالتوازي دون أن يتداخل بعضها مع بعض. يبقى main (أو master) مستقرًا، بينما يوجد العمل الجاري في فروع الميزات.

عرض الفروع وإنشاؤها

يعرض git branch الفروع. وينشئ git branch name فرعًا جديدًا. يبدأ الفرع الجديد من commit الحالي.

git branch             # list all branches
git branch feature/auth # create a new branch
git branch -d feature/auth # delete merged branch

التبديل بين الفروع

ينتقل git checkout branchname إلى فرع موجود. وينشئ git checkout -b branchname فرعًا وينتقل إليه في خطوة واحدة. والبديل الحديث هو: git switch.

git checkout main           # switch to main
git checkout feature/auth   # switch to existing branch
git checkout -b hotfix/nav  # create + switch

# Modern (git 2.23+):
git switch main
git switch -c feature/auth

سير العمل المعتاد للفروع

1) بدّل إلى main. 2) اسحب أحدث التغييرات. 3) أنشئ فرع ميزة. 4) أنشئ commits. 5) ادمج التغييرات مجددًا في main. 6) احذف فرع الميزة.

git switch main
git pull
git switch -c feature/dark-mode
# ... make commits ...
git switch main
git merge feature/dark-mode
git branch -d feature/dark-mode

دمج الفروع

يدمج git merge branchname التغييرات من الفرع المحدد في الفرع الحالي. يحاول Git إجراء الدمج تلقائيًا. يحدث الدمج بالتقديم السريع عندما يكون السجل متسلسلًا دون تعارض.

git switch main
git merge feature/auth
# Fast-forward: no merge commit if history is linear

Commits الدمج

عندما يتفرع مسارا العمل عن بعضهما، ينشئ Git commit دمج له اثنان من commits الأصلية. يحافظ ذلك على السجل الكامل لمساري التطوير.

تعارضات الدمج

عندما يُغيَّر الملف نفسه في كلا الفرعين، لا يستطيع Git إجراء الدمج تلقائيًا ويضع علامة على التعارض. حرّر الملف لحلّه، ثم أنشئ commit.

<<<<<<< HEAD
const COLOR = 'blue';
=======
const COLOR = 'red';
>>>>>>> feature/theming

// After resolving:
const COLOR = 'navy'; // your decision

git add styles.css
git commit

git rebase — سجل خطي

يعيد git rebase main تشغيل commits فرعك فوق أحدث main، وينشئ سجلًا خطيًا دون commits دمج. استخدمه مع فروع الميزات قبل الدمج، وتجنب إعادة تطبيقه على الفروع المشتركة.

git switch feature/auth
git rebase main  # replay commits on top of current main

HEAD — موضعك الحالي

يشير HEAD إلى طرف الفرع الحالي، أو إلى commit محدد في حالة detached HEAD. يعرض git log موضع HEAD. يشير HEAD~1 إلى commit السابق، بينما يشير HEAD~3 إلى commit الذي يسبق الحالي بثلاثة مواضع.

حفظ العمل الجاري مؤقتًا

يحفظ git stash التغييرات غير المودعة ويعيد مستودع العمل إلى حالة نظيفة. استخدمه عندما تحتاج إلى التبديل بين الفروع دون إنشاء commit لعمل غير مكتمل. يعيد git stash pop هذه التغييرات.

git stash           # save WIP
git switch hotfix/urgent
# ... fix and commit ...
git switch feature/auth
git stash pop       # restore WIP

اتفاقيات تسمية الفروع

من الأنماط الشائعة: feature/feature-name وfix/bug-description وhotfix/critical-fix وchore/dependency-update. تجعل التسمية المتسقة قائمة الفروع سهلة القراءة.

تحقق سريع

ما الأمر الذي ينشئ فرعًا جديدًا وينتقل إليه في خطوة واحدة؟

مراجعة: إنشاء الفروع في Git

ينشئ git branch الفروع. ويتنقل git checkout/switch بينها. ويدمج git merge التغييرات. عالج التعارضات بتحرير كتل العلامات. يحفظ git stash العمل الجاري. استخدم git rebase للحصول على سجل خطي. استخدم فروع الميزات لكل عمل جديد، وحافظ على استقرار main. احذف الفروع المدمجة للحفاظ على نظافة القائمة.

الأسئلة الشائعة

هل درس «التفرّع: branch وcheckout وmerge» مجاني؟

نعم — نص درس «التفرّع: branch وcheckout وmerge» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Frontend Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Frontend Academy 4 دروس في المجموع.

ماذا ستتعلم في «التفرّع: branch وcheckout وmerge»؟

أنشئ فروعًا للميزات، وانتقل بينها، وادمج الفروع مجددًا في main، وحلّ تعارضات الدمج البسيطة. تتمرن على Frontend Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Frontend Academy؟

لا تُشترط خبرة سابقة. Frontend Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التفرّع: branch وcheckout وmerge»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Frontend Academy هذا؟

نعم. كل درس في Frontend Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. git init وadd وcommit وstatus
  2. التفرّع: branch وcheckout وmerge
  3. المستودعات البعيدة: push وpull وclone
  4. سير عمل Pull Request على GitHub
← العودة إلى Frontend Academy