B52 · المجلة

Git bisect: اعثر على التعديل الذي بدأ عنده العطل باختبار متكرر

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

تصميم B52 توضيحي: أي تعديل سبّب الخطأ؟ — ضيّق البحث بدل التخمين
تصميم تحريري أصلي © B52 Arabic 2026؛ ليس لقطة لعبة أو واجهة فعلية.

تعرف أن الميزة كانت تعمل ثم تعطلت، لكن سجل Git طويل؟ يساعد bisect في تضييق النطاق باختيار نسخ وسطية للاختبار. قوة الطريقة تأتي من ثبات الاختبار، لا من عدد الأوامر التي تشغلها.

جهز بيئة منفصلة أولًا

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

بحث أصغر.. وقرار مبني على الاختبار؛ مخطط تعليمي من B52
بحث أصغر.. وقرار مبني على الاختبار؛ مخطط تعليمي من B52 · مخطط أصلي © B52 Arabic 2026؛ ليس لقطة واجهة.
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؛ راجع الروابط للمعلومات المرجعية.

شارك الفائدة

أرسل الموضوع لمن يهتم، أو احتفظ برابطه للرجوع إليه.

اقرأ أيضًا