Git: إنشاء فرع
آخر تحديث
الطريقة الحديثة لإنشاء فرع والتبديل إليه في خطوة واحدة هي git switch -c <name>. أما الأمر الأقدم git checkout -b <name> فيؤدي الشيء نفسه ولا يزال يعمل في كل مكان. ويقوم git branch <name> بإنشاء الفرع دون التبديل إليه. يبدأ الفرع الجديد من حيث أنت الآن ما لم تحدد نقطة بداية مختلفة.
جرّب هذه الأوامر في ساحة الطرفية - صدفة حقيقية في متصفحك، لا شيء لتثبيته.
الصياغة
| Command | What it does |
|---|---|
git switch -c feature | ينشئ feature ويبدّل إليه (حديث) |
git checkout -b feature | ينشئ ويبدّل (أقدم، مكافئ) |
git branch feature | ينشئ الفرع دون التبديل إليه |
git switch -c feature main | ينشئ feature بدءًا من main |
git switch -c feature <hash> | ينشئ فرعًا بدءًا من commit |
الحالات الشائعة
| Goal | Command |
|---|---|
| التفرّع من فرع بعيد | git switch -c feature origin/feature |
| دفع فرع جديد وتعيين upstream | git push -u origin feature |
| إنشاء فرع ستبدّل إليه لاحقًا | git branch feature |
الأسئلة الشائعة حول إنشاء فرع في Git
كيف أنشئ فرعًا وأبدّل إليه بأمر واحد؟
شغّل
git switch -c <name> (Git الحديث) أو المكافئ git checkout -b <name>. كلاهما ينشئ الفرع الجديد من commit الحالي ويقوم بالتبديل إليه فورًا، لتكون جاهزًا للعمل عليه على الفور.ما الفرق بين git switch -c و git checkout -b؟
كلاهما يؤدي الشيء نفسه - إنشاء فرع والتبديل إليه. أما
git switch فهو الأمر الأحدث والأكثر تركيزًا، وقد أُدخل لفصل تبديل الفروع عن الاستخدامات الكثيرة الأخرى لـ git checkout. وgit checkout -b أقدم لكنه لا يزال مدعومًا بالكامل؛ استخدم ما يفضّله فريقك.كيف أنشئ فرعًا من فرع آخر أو من commit محدد؟
أضف نقطة بداية كوسيط أخير:
git switch -c feature main يتفرّع من main، وgit switch -c feature <hash> يتفرّع من commit محدد. بدون نقطة بداية، يُنشأ الفرع من HEAD الحالي.كيف أدفع فرعًا جديدًا إلى المستودع البعيد؟
بعد إنشائه محليًا، شغّل
git push -u origin <name>. تعيّن -u الـ upstream بحيث لا تحتاج أوامر git push وgit pull المستقبلية على ذلك الفرع إلى أي وسائط. لا يوجد الفرع على المستودع البعيد حتى تدفعه.هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل هذه الأوامر في صدفة حقيقية داخل متصفحك - لا شيء لتثبيته. كما يغطي مساق Git التفاعلي المجاني من Coddy موضوع التفرّع من البداية إلى النهاية.