Git: إعادة تسمية فرع
آخر تحديث
تعيد تسمية فرع باستخدام git branch -m (الحرف -m يرمز إلى "move" أي النقل). مع وسيط واحد يعيد تسمية الفرع الذي أنت عليه؛ ومع وسيطين يعيد تسمية أي فرع بالاسم. إعادة التسمية محلية بحتة - إذا كان الفرع قد دُفع بالفعل، فإنك تحذف أيضًا الاسم القديم على المستودع البعيد وتدفع الاسم الجديد.
جرّب هذه الأوامر في terminal playground - صدفة حقيقية في متصفحك، ولا شيء لتثبيته.
الصيغة
| Command | What it does |
|---|---|
git branch -m new-name | يعيد تسمية الفرع الذي أنت عليه حاليًا |
git branch -m old-name new-name | يعيد تسمية فرع آخر بالاسم |
git branch -M new-name | يفرض إعادة التسمية (يستبدل اسمًا موجودًا) |
إعادة تسمية فرع موجود على المستودع البعيد
إعادة التسمية محلية، لذا يحتاج الفرع المدفوع إلى ثلاث خطوات إضافية.
| Step | Command | Result |
|---|---|---|
| 1 | git branch -m old new | يعيد تسمية الفرع محليًا |
| 2 | git push origin --delete old | يحذف الاسم القديم على المستودع البعيد |
| 3 | git push -u origin new | يدفع الاسم الجديد ويضبط الـ upstream |
الأسئلة الشائعة حول إعادة تسمية فرع Git
كيف أعيد تسمية الفرع الذي أنا عليه حاليًا؟
شغّل
git branch -m new-name بالاسم الجديد فقط. يعيد Git تسمية الفرع الحالي في مكانه - تبقى عليه، وتظل الـ commits والتاريخ لديك دون مساس.كيف أعيد تسمية فرع دون الانتقال إليه؟
مرّر كلا الاسمين:
git branch -m old-name new-name. هذا يعيد تسمية old-name إلى new-name حتى لو كنت حاليًا على فرع مختلف.كيف أعيد تسمية فرع موجود بالفعل على GitHub؟
أعد تسميته محليًا باستخدام
git branch -m old new، واحذف الاسم القديم على المستودع البعيد باستخدام git push origin --delete old، ثم ادفع الاسم الجديد واضبط الـ upstream الخاص به باستخدام git push -u origin new. سيحتاج أي شخص آخر لديه الفرع القديم إلى تحديث نسخته المحلية.ما الفرق بين -m و -M؟
-m (move) يعيد تسمية الفرع لكنه يرفض إذا كان هناك فرع بالاسم المستهدف موجودًا بالفعل، لذا لا يمكنك أن تطمس فرعًا آخر بالخطأ. -M يفرض إعادة التسمية، مستبدلًا فرعًا موجودًا بهذا الاسم. استخدم -m ما لم تكن تقصد الاستبدال تحديدًا.هل يمكنني التدرب على هذا عبر الإنترنت؟
نعم. افتح terminal playground لتشغيل هذه الأوامر في صدفة حقيقية في متصفحك - لا شيء لتثبيته. كما يغطي مساق Git التفاعلي المجاني من Coddy التفريع من البداية إلى النهاية.