دليل استخدام الفروع في Git: مرجع عملي شامل للمطورين
مقدمة: لماذا تُعد الفروع في Git أساسية؟
تُعد الفروع في Git من أهم المفاهيم التي يعتمد عليها المطورون في إدارة الشيفرة المصدرية بكفاءة. فمن خلالها يمكنك تطوير ميزة جديدة، أو إصلاح خطأ، أو تجربة فكرة مختلفة دون التأثير على الفرع الرئيسي للمشروع. كما تمنحك الفروع مرونة كبيرة في تنظيم سير العمل داخل الفريق.
في هذا الدليل العملي، ستتعرف على أهم العمليات المتعلقة بالفروع في Git، بدءاً من إنشائها وتسميتها، مروراً بالتبديل بينها ونشرها، وصولاً إلى دمجها أو إعادة تأسيسها ومقارنتها. الهدف هنا ليس الإطالة، بل تقديم مرجع واضح ومفيد وسهل التطبيق.

ما الذي ستتعلمه في هذا الدليل؟
- إنشاء فرع جديد في
Git. - إعادة تسمية الفروع المحلية والبعيدة.
- التبديل بين الفروع باستخدام
git checkoutوgit switch. - نشر الفروع إلى المستودع البعيد.
- إعداد علاقة تتبع بين الفروع.
- حذف الفروع محلياً وبعيداً.
- دمج الفروع باستخدام
merge. - إعادة ترتيب السجل باستخدام
rebase. - مقارنة الفروع ومعرفة الفروقات بينها.
كيفية إنشاء فرع جديد في Git
قبل العمل على الفروع، يجب أن يحتوي المستودع لديك على فرع واحد على الأقل. لإنشاء فرع محلي جديد، استخدم الأمر التالي:
git branch <new-branch-name>
عند تنفيذ هذا الأمر، سيفترض Git أنك تريد إنشاء الفرع الجديد انطلاقاً من المراجعة الحالية، أي من الموضع الذي يشير إليه HEAD.
إذا كنت ترغب في إنشاء الفرع انطلاقاً من مراجعة محددة، يمكنك تمرير قيمة SHA-1 الخاصة بتلك المراجعة:
git branch <new-branch-name> 89a2faad
من المهم معرفة أن إنشاء الفروع يتم محلياً فقط. أما إنشاء فرع على المستودع البعيد فعلياً، فيكون عبر نشر فرع محلي موجود مسبقاً، وهو ما سنوضحه لاحقاً.
كيفية إعادة تسمية فرع في Git
قد تخطئ في كتابة اسم الفرع، أو قد يتغير الغرض من الفرع بعد إنشائه. لحسن الحظ، يتيح Git إعادة تسمية الفروع المحلية بسهولة.
إعادة تسمية الفرع الحالي
git branch -m <new-name>
إعادة تسمية فرع محلي غير مفعل حالياً
git branch -m <old-name> <new-name>
هذه الأوامر تعمل على الفروع المحلية فقط. أما إذا أردت تغيير اسم فرع بعيد، فالأمر ليس مباشراً، لأن Git لا يوفر أمراً صريحاً لإعادة تسمية الفرع البعيد.
عملياً، يتم ذلك عبر حذف الفرع البعيد القديم، ثم رفع الفرع المحلي بالاسم الجديد:
# حذف الفرع البعيد القديم
git push origin --delete <old-name>
# رفع الفرع المحلي بالاسم الجديد وإنشاء علاقة تتبع
git push -u origin <new-name>
كيفية التبديل بين الفروع في Git
الفرع الحالي، والذي يُشار إليه غالباً باسم HEAD، هو السياق الذي تعمل بداخله الآن. أي أن أي عملية commit جديدة ستُسجّل على هذا الفرع.
لهذا السبب، يُعد التبديل بين الفروع من أكثر العمليات استخداماً أثناء تطوير البرمجيات.
التبديل باستخدام git checkout
git checkout <other-branch>
التبديل باستخدام git switch
git switch <other-branch>
ورغم أن git checkout ما يزال مستخدماً بكثرة، فإن الأمر git switch أوضح من حيث الغرض، لأنه مخصص صراحةً للتنقل بين الفروع دون الالتباس مع مهام أخرى.
كيفية نشر فرع إلى المستودع البعيد
لا يمكنك إنشاء فرع جديد مباشرةً على المستودع البعيد بالمعنى التقليدي، لكن يمكنك نشر فرع محلي موجود ليصبح متاحاً على remote ويستفيد منه باقي أعضاء الفريق.
git push -u origin <local-branch>
الخيار -u مهم جداً، لأنه ينشئ علاقة تتبع بين الفرع المحلي والفرع البعيد. وهذا يجعل أوامر مثل git push وgit pull أسهل لاحقاً، إذ لن تحتاج في كل مرة إلى تحديد اسم remote واسم الفرع الهدف.
كيفية تتبع الفروع في Git
افتراضياً، لا توجد علاقة تلقائية بين الفرع المحلي والفرع البعيد. لكن في الاستخدام العملي، غالباً ما يكون هناك ارتباط بينهما، مثل أن يكون الفرع البعيد هو النظير المباشر للفرع المحلي.
![]()
عند إعداد علاقة التتبع، يصبح من السهل تنفيذ أوامر بسيطة مثل git push أو git pull دون تحديد تفاصيل إضافية، لأن Git يعرف مسبقاً أين يدفع التعديلات ومن أين يجلبها.
إنشاء فرع محلي يتتبع فرعاً بعيداً
git branch --track <local-branch> origin/<base-branch>
بديل باستخدام git checkout
git checkout --track origin/<base-branch>
إذا رغبت في أن يحمل الفرع المحلي الاسم نفسه الموجود على المستودع البعيد، فغالباً يكفي تمرير اسم الفرع البعيد كما في المثال أعلاه.
كيفية حذف فرع في Git
ليست كل الفروع مصممة لتبقى إلى الأبد. في الواقع، معظم فروع الميزات تكون مؤقتة وتنتهي مهمتها بعد الدمج. لذا فإن حذف الفروع القديمة جزء مهم من صيانة المستودع.
حذف فرع محلي
git branch -d <branch-name>
إذا كان الفرع يحتوي على تغييرات غير مدمجة، فقد تحتاج إلى فرض الحذف باستخدام الخيار -f. لكن يجب الحذر، لأن ذلك قد يؤدي إلى فقدان عمل غير محفوظ بشكل نهائي.
حذف فرع بعيد
git push origin --delete <branch-name>
من الأفضل عند حذف فرع، أن تتحقق أيضاً مما إذا كان يجب حذف نظيره المحلي أو البعيد، حتى لا يتراكم لديك عدد كبير من الفروع غير المستخدمة.
كيفية دمج الفروع في Git
تُعد عملية الدمج merge من أكثر الطرق شيوعاً لدمج التعديلات بين الفروع. وهي تسمح بجلب جميع commits الجديدة من فرع آخر إلى الفرع الحالي.
تتم العملية غالباً بخطوتين:
# 1) الانتقال إلى الفرع الذي سيستقبل التعديلات
git switch main
# 2) دمج الفرع المطلوب
git merge feature/contact-form
في كثير من الحالات، ينتج عن الدمج merge commit منفصل، وهو السجل الذي يوثق نقطة التقاء الفرعين في التاريخ التطويري للمشروع.

يمتاز الدمج بأنه واضح وآمن نسبياً، كما أنه يحتفظ بتاريخ الفروع بشكل صريح، وهو ما تفضله بعض الفرق عند مراجعة سجل المشروع.
كيفية استخدام rebase مع الفروع
يوفر rebase طريقة بديلة لدمج التغييرات من فرع إلى آخر. وهو ليس أفضل من merge أو أسوأ منه، بل مختلف في النتيجة وطريقة عرض التاريخ.
عند استخدام merge، يظهر تاريخ التطوير مع نقطة دمج واضحة. أما عند استخدام rebase، فيبدو السجل أكثر خطية وتنظيماً، لأن Git يعيد تطبيق التعديلات وكأنها حدثت فوق آخر نسخة من الفرع الهدف.
بدء العملية بسيط:
# 1) الانتقال إلى الفرع الذي سيستقبل إعادة البناء
git switch feature/contact-form
# 2) تنفيذ rebase على الفرع الأساسي
git rebase main
يفضل كثير من المطورين rebase عندما يريدون سجلاً نظيفاً وخالياً من merge commits غير الضرورية، لكن ينبغي استخدامه بحذر، خاصة إذا كان الفرع مشتركاً مع آخرين، لأن rebase يعيد كتابة التاريخ.
كيفية مقارنة الفروع في Git
مقارنة الفروع مفيدة جداً قبل اتخاذ قرار بالدمج أو الحذف. فهي تتيح لك معرفة ما إذا كان أحد الفروع يحتوي على commits جديدة أو تعديلات تستحق الاحتفاظ بها.
مقارنة سجل commits
git log branch-A..branch-B
يعرض هذا الأمر جميع commits الموجودة في branch-B وغير الموجودة في branch-A. ويمكنك أيضاً استخدامه للمقارنة بين النسخة المحلية والبعيدة، مثل:
git log main..origin/main
مقارنة التغييرات الفعلية
git diff branch-A..branch-B
إذا كنت تريد رؤية الفروقات داخل الملفات نفسها، فإن git diff هو الخيار المناسب، لأنه يعرض التعديلات الدقيقة سطراً بسطر.
نصائح عملية لزيادة الإنتاجية عند العمل مع الفروع
- استخدم أسماء فروع واضحة تعبّر عن المهمة، مثل
feature/login-pageأوfix/payment-bug. - احذف الفروع المنتهية بانتظام لتجنب الفوضى.
- أنشئ علاقة تتبع مبكراً لتسهيل أوامر
pushوpull. - اختر بين
mergeوrebaseبناءً على سياسة الفريق، لا على التفضيل الفردي فقط. - قارن الفروع قبل الدمج للتأكد من أنك تنقل التعديلات الصحيحة.
متى تستخدم merge ومتى تستخدم rebase؟
إذا كان فريقك يفضل الاحتفاظ بتاريخ واضح يُظهر نقاط الدمج بشكل صريح، فغالباً سيكون merge الخيار الأنسب. أما إذا كنتم تفضلون تاريخاً خطياً ومنظماً، فقد يكون rebase أفضل في بعض السيناريوهات.
القاعدة الأهم هي توحيد الأسلوب داخل الفريق، لأن الاتساق في إدارة الفروع لا يقل أهمية عن اختيار الأداة نفسها.
الخلاصة التقنية
إدارة الفروع في Git ليست مجرد أوامر متفرقة، بل هي أساس لتنظيم التطوير الفردي والجماعي بكفاءة. كلما أتقنت إنشاء الفروع، وتتبعها، ودمجها، ومقارنتها، أصبح بإمكانك التحكم في تاريخ المشروع وتقليل الأخطاء وتحسين جودة التعاون داخل الفريق. من الناحية العملية، يُنصح بالاعتماد على فروع قصيرة العمر، وأسماء واضحة، وسياسة ثابتة للدمج أو rebase لضمان مستودع نظيف وسهل الصيانة.