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

تعرف أن الميزة كانت تعمل ثم تعطلت، لكن سجل Git طويل؟ يساعد bisect في تضييق النطاق باختيار نسخ وسطية للاختبار. قوة الطريقة تأتي من ثبات الاختبار، لا من عدد الأوامر التي تشغلها.
جهز بيئة منفصلة أولًا
احفظ عملك وراجع git status. نفذ البحث في نسخة عمل منفصلة أو مستودع تجريبي، ببيانات غير إنتاجية؛ العملية تبدل الالتزام الحالي. اختر التزامًا ثبتت سلامته وآخر تكرر فيه العطل نفسه، لا مجرد نسختين تتوقع الفرق بينهما.

git bisect start git bisect bad BAD_COMMIT git bisect good GOOD_COMMIT
استبدل BAD_COMMIT وGOOD_COMMIT بمعرفين راجعتهما. شغّل اختبارك في النسخة التي اختارها Git؛ إن نجح صنفها good، وإن ظهر العطل المقصود صنفها bad. لا تعتبر فشل بناء غير مرتبط دليلًا أن الميزة معطلة.
git bisect good # أو عند ظهور العطل المقصود: git bisect bad # إن تعذر اختبار هذه النسخة لسبب آخر: git bisect skip
دوّن سبب كل حكم
أنشئ جدولًا صغيرًا: الالتزام، بيئة التشغيل، نتيجة الاختبار، وسبب التصنيف. إذا احتاجت نسخة قديمة تبعية مختلفة فراجعها في البيئة المنفصلة. تغيير الاختبار في منتصف البحث قد يخلط بين عطلين ويقود إلى نتيجة غير مفيدة.
أنهِ الجلسة وراجع الفرق
git bisect log git bisect reset
توثق Git أن reset هنا ينهي جلسة bisect ويعود إلى موضع البداية المعتاد. راجع الفرق في الالتزام المرشح؛ ظهوره كأول نسخة معطلة لا يشرح السبب وحده. وقد يترك تخطي التزامات متجاورة أكثر من مرشح، فاذكر ذلك بدل الجزم.
المصادر والمراجع
دليل أصلي من B52؛ راجع الروابط للمعلومات المرجعية.


