شروحات Git
إنشاء فروع Git والانتقال بينها: اختر نقطة البداية الصحيحة
إنشاء فرع سهل، لكن اختيار نقطة بداية خاطئة قد يسبب عملًا إضافيًا. تعلّم إنشاء الفروع والانتقال بينها وتتبع الفروع البعيدة وحماية التعديلات ومراجعة النتيجة في GitTree.
استخدم `git switch -c feature/checkout` لإنشاء فرع عند commit الحالي والانتقال إليه. للانتقال إلى فرع محلي موجود استخدم git switch branch-name. لإنشاء فرع عند نقطة أخرى اكتب commit أو الفرع المرجعي بعد الاسم الجديد. في GitTree يفتح زر Branch نافذة الإنشاء؛ راجع commit البداية قبل التأكيد.
السؤال العملي هو: على أي تاريخ يجب أن تبني التغيير التالي؟ قد تبدأ ميزة الإصدار القادم من main، بينما يبدأ إصلاح عاجل لإصدار أقدم من فرع ذلك الإصدار. يتتبع الدليل فرع ميزة من بدايته إلى أول push مع مثال متحرك في GitTree. نطوّر GitTree لأنظمة macOS وWindows وLinux، وتشمل الخطة المجانية عمليات الفروع المحلية وتتطلب الإصدارات الرسمية الحالية تسجيل الدخول.
ما هو فرع Git وما معنى HEAD؟
الفرع اسم يشير إلى commit. إنشاء اسم آخر لا ينسخ المستودع أو ملفاته. يشير HEAD عادةً إلى الفرع الحالي، وتتقدم إشارته عند إضافة commits. يحدّث الانتقال الملفات وفق تاريخ الفرع المستقبِل مع الاحتفاظ بالتعديلات المحلية المتوافقة. تساعدك شجرة commits المرئية في فحص أسماء الفروع والـcommits المشتركة.
| الأمر | ينشئ فرعًا؟ | ينتقل إليه؟ |
|---|---|---|
git branch feature/checkout | نعم، عند HEAD | لا |
git switch -c feature/checkout | نعم، عند HEAD | نعم |
git switch feature/checkout | يستخدم فرعًا محليًا موجودًا | نعم |
git checkout -b feature/checkout | نعم، بصيغة checkout الأقدم | نعم |
إنشاء فرع من الأساس الصحيح
افحص الفرع الحالي والتعديلات المحلية أولًا. إذا أردت البدء من أحدث main جلبته، فنفّذ fetch وحدد origin/main صراحةً. يحدّث fetch المراجع البعيدة ولا يحرّك main المحلي تلقائيًا. استبدل origin وmain واسم الميزة بأسماء مستودعك الفعلية.
git status
git branch --show-current
git fetch origin
git log -1 --oneline origin/main
git switch --no-track -c feature/checkout origin/main
git branch --show-current
git log -1 --onelineيمنع --no-track هنا ربط فرع الميزة بتتبع origin/main لمجرد البدء منه. يكون upstream المناسب عادةً فرع الميزة نفسه على الخادم. للبدء من commit الحالي استخدم git switch -c feature/checkout دون نقطة بداية. افحص علاقات التتبع باستخدام git branch -vv.
الانتقال إلى فرع موجود والعودة إلى السابق
git switch feature/checkout
git branch --show-current
git switch -نفّذ كل انتقال عندما تقصد تغيير المهمة؛ هذه أوامر مرجعية وليست خطوات للتنفيذ دون مراجعة. يعيد git switch - الفرع أو commit الذي كنت عليه سابقًا. يتوفر git switch منذ Git 2.23، وتستخدم الإصدارات الأقدم git checkout branch-name للانتقال. لا تضف خيار فرض الانتقال لمجرد تجاوز رسالة رفض.
إنشاء الفروع والانتقال بينها في GitTree
راجع نقطة البداية
افحص الفرع الحالي في الشجرة. اختر Branch من شريط الأدوات للبدء عند commit الحالي، أو انقر بزر الفأرة الأيمن على commit واختر Create Branch Here.
راجع الأساس والاسم
اقرأ Create a branch at ثم أدخل اسم مهمة مثل feature/settings-copy. يتحقق GitTree من صلاحية الاسم قبل الإنشاء.
أنشئ الفرع وانتقل إليه
أبقِ Check out the new branch مفعّلًا إذا أردت العمل عليه فورًا ثم اختر Create Branch.
تأكد من الفرع الحالي
ابحث عن اسم الفرع الجديد وعلامة الفرع الحالي. سيضاف commit التالي إلى هذا الفرع.
انتقل عندما تكون جاهزًا
انقر مرتين على اسم فرع آخر أو استخدم Checkout من قائمته. إذا منعت التعديلات المحلية الانتقال، فاختر طريقة حفظها أولًا.

نزّل GitTree لرؤية الفروع ونقاط بدايتها قبل الانتقال. يظل المستودع مستودع Git عاديًا، ويمكنك العمل بين الواجهة المرئية وأوامر الطرفية.
ماذا يحدث للتعديلات غير المسجّلة عند الانتقال؟
لم تُسجّل التعديلات المحلية على فرع بعد. قد ينقلها Git معك عند الانتقال إذا كانت متوافقة مع الفرع المستقبِل، ويتوقف إذا كان الانتقال سيستبدلها. يحمي الرفض عملك ولا يعني تلف المستودع. افحص git status قبل الانتقال وبعده بدل افتراض أن كل تعديل ينتمي إلى الفرع الذي كنت عليه.
يعرض GitTree خيارات Stash and Switch وCommit First وDiscard and Switch عندما تمنع التعديلات الانتقال. اختر ما يناسب هدفك: يحفظ stash نسخة محلية مؤقتة، ويسجّل commit نسخة في التاريخ، بينما يزيل Discard تعديلات العمل. لا تستخدم Discard كطريقة اعتيادية لتبديل الفروع. يشرح دليل stash فحص العمل المحفوظ واستعادته.
إنشاء فرع محلي يتتبع فرعًا بعيدًا
git fetch origin
git branch --remotes
git switch -c feature/checkout --track origin/feature/checkout
git branch -vvيفترض المثال غياب feature/checkout محليًا ووجوده على الخادم. إذا كان موجودًا محليًا فانتقل إليه بدل محاولة إنشائه مجددًا. يمثّل origin/feature/checkout آخر حالة جلبتها من الخادم، بينما تضيف commits على الفرع المحلي. لا يعني التتبع مزامنة الملفات بصورة مستمرة.
نشر فرعك الجديد عندما يصبح التغيير جاهزًا
git status
git branch --show-current
git push -u origin feature/checkoutلا يرفع إنشاء فرع محلي أي شيء إلى الخادم. بعد مراجعة التغييرات المطلوبة وتسجيلها، ارفع الفرع لمشاركة commits، ويسجّل -u علاقة upstream. تأكد من الخادم والفرع قبل أول push. راجع دليل رفع مشروع إلى GitHub للخطوات الأوسع. لا ينشر push التعديلات غير المسجّلة أو عناصر stash المحلية.
معالجة أخطاء الفروع دون فرض الانتقال
| الرسالة أو العَرَض | ما الذي تراجعه |
|---|---|
| الفرع موجود بالفعل | انتقل إليه أو اختر اسمًا جديدًا |
| مرجع غير صالح أو فرع غير معروف | راجع الاسم ونفّذ fetch وافحص الفروع المحلية والبعيدة |
| سيُستبدل العمل المحلي | سجّل العمل المتأثر أو احفظه مؤقتًا |
| الفرع مستخدم في worktree آخر | افتح ذلك المجلد أو اختر فرعًا آخر |
| Detached HEAD | أنشئ فرعًا عند commit الحالي قبل المغادرة إذا أردت حفظ العمل |
إذا عدّلت الملفات على الفرع الخطأ دون تسجيل، فإن إنشاء فرع عند HEAD الحالي يتيح غالبًا متابعة التعديلات عليه. أما إذا سجّلت الإصلاح بالفعل فنقله مهمة مختلفة؛ يشرح دليل cherry-pick نسخ commit المختار. ولمهمتين نشطتين استخدم worktrees مستقلة حتى لا يؤثر تبديل مجلد على الآخر.
الأسئلة الشائعة
هل ينشئ git branch الفرع وينتقل إليه؟
ينشئ git branch new-name الاسم دون انتقال. ينشئ git switch -c new-name الفرع وينتقل إليه.
هل أبدأ من main أم origin/main؟
ابدأ من النسخة المناسبة للمهمة. قد يختلف main المحلي عن origin/main؛ يحدّث fetch الثاني وليس الأول.
هل يحذف الانتقال بين الفروع تعديلاتي؟
يرفض Git عادةً الانتقال الذي يستبدل العمل المحلي، وقد تنتقل التعديلات المتوافقة معك. افحص الحالة وسجّل العمل المهم أو احفظه مؤقتًا.
هل يؤدي إنشاء الفرع إلى نشره على GitHub؟
لا. يبقى الفرع محليًا حتى ترفع commits إلى خادم بعيد. تأكد من وجهة الرفع قبل النشر.
هل ينشئ GitTree فرعًا من commit قديم؟
نعم. انقر بزر الفأرة الأيمن على commit المطلوب واختر Create Branch Here ثم راجع نقطة البداية وخيار الانتقال إلى الفرع.
المصادر
تحققنا من المعلومات عن المنتجات الأخرى من صفحاتها الرسمية بتاريخ 28 أكتوبر 2026. الأسعار والميزات تتغير، وصفحات الشركات هي المرجع.