Bisect

एडवांस्ड Git

Amanda Crawford-Adamo

Software and Data Engineer

git bisect क्या है?

एक टूल जो बाइनरी सर्च से उस commit को ढूँढता है जिसने bug लाया।

Git Bisect कमांड

git bisect

उद्देश्य

  1. खराब commit जल्दी ढूँढें
  2. डेटा डिबगिंग के लिए ज़रूरी
  3. रूट कॉज़ एनालिसिस तेज़ करें
एडवांस्ड Git

Bisect - शुरुआत

  1. git bisect सेशन शुरू करें

    git bisect start
    
  2. वर्तमान state को bad मार्क करें

    git bisect bad
    
  3. आखिरी known good state मार्क करें

    git bisect good <commit-hash>
    

commits का ग्राफ, जहाँ पहले दो commits हरे रंग में good हैं। आखिरी commit लाल है, यानी known bad। good और bad के बीच तीन commits धूसर हैं, जिनकी स्थिति unknown है। आखिरी good को "git bisect good" और bad को "git bisect bad" से चिन्हित किया गया है.

एडवांस्ड Git

Bisect - खोज

  1. commit state को bad मार्क करता है

    git bisect bad
    
  2. commit state को good मार्क करता है

    git bisect good
    

commits का ग्राफ, जहाँ पहले दो commits हरे रंग में good हैं। आखिरी commit लाल है, यानी known bad। बीच के तीन commits धूसर हैं, यानी unknown। Git bisect बाइनरी सर्च से पहले बीच वाले commit को जाँचता है, फिर बाएँ या दाएँ वाले को.

एडवांस्ड Git

Bisect - ऑटोमेटेड खोज

ऑटोमेटेड टेस्ट स्क्रिप्ट चलाकर जाँचता है कि commit वर्ज़न good है या bad.

git bisect run <script_name>
  • टेस्ट पास हों तो स्क्रिप्ट 0 रिटर्न करे।
  • फेल हों तो non-zero नंबर रिटर्न करे।

commits का ग्राफ, जहाँ पहले दो commits हरे रंग में good हैं। आखिरी commit लाल है, यानी known bad। बीच के तीन commits धूसर हैं, यानी unknown। Git bisect बाइनरी सर्च से पहले बीच वाले commit को जाँचता है, फिर बाएँ या दाएँ वाले को.

एडवांस्ड Git

Bisect - परिणाम

Git Bisect आउटपुट उदाहरण

$ git log
b1a534f is the first bad commit
commit b1a534f89l2c3d4e5f6g7h8i9j0k1l2m3n4o5p
Author: Jane Doe <[email protected]>
Date:   Thu Mar 14 14:30:00 2024 -0500

Update data transformation logic

git bisection प्रक्रिया से निकलकर current HEAD पर लौटें

git bisect reset
एडवांस्ड Git

git bisect कब इस्तेमाल करें

यूज़ केस

  1. डेटा वर्कफ़्लो में रिग्रेशन ढूँढें
  2. तेज़ डिबगिंग के लिए टेस्ट स्क्रिप्ट्स चलाएँ

टिप्स

  • git bisect run <test-script> से टेस्टिंग ऑटोमेट करें
  • डिस्क्रिप्टिव commit मैसेज लिखें ताकि प्रक्रिया आसान हो
एडवांस्ड Git

अभ्यास करते हैं!

एडवांस्ड Git

Preparing Video For Download...