Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Git Bisect

آخر تحديث

يعثر git bisect على الـ commit الذي أدخل خطأً عن طريق البحث الثنائي. تخبره بـ commit معروف بأنه سليم وآخر معروف بأنه معطوب؛ فيسحب commit في منتصف المسافة، وتضع عليه وسم good أو bad، ويقلّص النطاق إلى النصف في كل مرة - فيحدّد المسبّب في خطوات قليلة حتى عبر آلاف الـ commits.

جرّب هذه الأوامر في ساحة الطرفية - صدفة حقيقية في متصفحك، دون تثبيت أي شيء.

git bisect يبحث ثنائيًا في التاريخ بين commit سليم وآخر معطوب، ويقسم النطاق المشتبه به إلى النصف في كل خطوة.

الصياغة

CommandWhat it does
git bisect startيبدأ جلسة bisect
git bisect badيضع وسم معطوب على الـ commit الحالي
git bisect good <hash>يضع وسمًا على commit معروف بأنه سليم
git bisect good / git bisect badيضع وسمًا على كل commit تم اختباره
git bisect run ./test.shالأتمتة: يشغّل اختبارًا لوسم كل خطوة
git bisect resetينهي bisect، ويعيدك إلى فرعك

مثال تطبيقي

اعثر على الـ commit الذي أعطب عملية البناء.

StepCommandResult
1git bisect startيبدأ البحث
2git bisect badالـ commit الحالي معطوب
3git bisect good v1.0هذا الوسم القديم كان يعمل
4اختبر ثم good/badكرّر حتى يسمّي Git الـ commit

الأسئلة الشائعة حول git bisect

ماذا يفعل git bisect؟
يُجري بحثًا ثنائيًا في سجل الـ commits لديك للعثور على الـ commit الدقيق الذي أدخل خطأً. تضع وسم good على commit وbad على آخر؛ ويسحب Git نقطة المنتصف مرارًا لتختبرها، مقلّصًا نطاق البحث إلى النصف في كل مرة حتى يحدّد أول commit معطوب.
كيف أستخدم git bisect؟
شغّل git bisect start، وضع وسم الحالة المعطوبة الحالية بـ git bisect bad، وضع وسم commit معروف بأنه يعمل بـ git bisect good <hash>. يسحب Git نقطة منتصف؛ اختبرها وشغّل git bisect good أو git bisect bad. كرّر حتى يُبلّغ Git عن أول commit معطوب، ثم شغّل git bisect reset.
هل يمكنني أتمتة git bisect؟
نعم. يشغّل git bisect run <script> سكربتك في كل خطوة - وينبغي أن يخرج السكربت بالقيمة 0 لـ commit سليم وبقيمة غير صفرية لـ commit معطوب (مشغّلات الاختبارات تناسب ذلك جيدًا). عندها يُجري Git الـ bisect تلقائيًا دون أن تضع وسمًا على كل commit يدويًا، ويطبع الـ commit المسبّب في النهاية.
كيف أنهي عملية bisect؟
شغّل git bisect reset لإنهاء الجلسة والعودة إلى الفرع والـ commit اللذين كنت عليهما قبل أن تبدأ. افعل ذلك سواء عثرت على الـ commit المعطوب أم لا - فهو ينظّف حالة bisect المؤقتة.
هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل git bisect في صدفة حقيقية داخل متصفحك - دون تثبيت أي شيء. كما يغطّي كورس Git التفاعلي المجاني من Coddy فحص السجل خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن