[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"navigation":3,"\u002F2026-05-tuto-git-bisect":84,"\u002F2026-05-tuto-git-bisect-surround":228},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80],{"title":5,"path":6,"stem":7},"Découvrir le Markdown — la syntaxe qui vous suivra partout","\u002F2025-09-decouvrir-markdown","2025-09-decouvrir-markdown",{"title":9,"path":10,"stem":11},"Le logiciel libre, en quelques idées simples","\u002F2025-09-logiciel-libre-open-source","2025-09-logiciel-libre-open-source",{"title":13,"path":14,"stem":15},"Utiliser l'ENT et Capytale au quotidien","\u002F2025-09-utiliser-ent-capytale","2025-09-utiliser-ent-capytale",{"title":17,"path":18,"stem":19},"Excalidraw — dessiner des schémas qu'on ose montrer","\u002F2025-10-excalidraw-schemas","2025-10-excalidraw-schemas",{"title":21,"path":22,"stem":23},"Concours Castor — l'informatique en 45 minutes","\u002F2025-11-concours-castor","2025-11-concours-castor",{"title":25,"path":26,"stem":27},"Godot, un moteur de jeu libre pour démarrer sérieusement","\u002F2026-01-godot-moteur-jeu","2026-01-godot-moteur-jeu",{"title":29,"path":30,"stem":31},"Prologin — s'entraîner toute l'année à l'algorithmique","\u002F2026-01-prologin-entrainement","2026-01-prologin-entrainement",{"title":33,"path":34,"stem":35},"Le voyage d'un programme à travers le CPU","\u002F2026-02-voyage-programme-cpu","2026-02-voyage-programme-cpu",{"title":37,"path":38,"stem":39},"Coloration syntaxique côté serveur avec Shiki","\u002F2026-03-tuto-shiki","2026-03-tuto-shiki",{"title":41,"path":42,"stem":43},"Bun 1.2 — où en est-on ?","\u002F2026-03-veille-bun","2026-03-veille-bun",{"title":45,"path":46,"stem":47},"Club prologin — bilan de la session","\u002F2026-04-club-prologin","2026-04-club-prologin",{"title":49,"path":50,"stem":51},"L'IA dans nos cours, sans s'y noyer","\u002F2026-04-edito-ia-cours","2026-04-edito-ia-cours",{"title":53,"path":54,"stem":55},"Semaine des langues — quand Python lit nos textes","\u002F2026-04-semaine-langues-nlp","2026-04-semaine-langues-nlp",{"title":57,"path":58,"stem":59},"Sous le capot de nsi.rocks","\u002F2026-05-coulisses-nsi-rocks","2026-05-coulisses-nsi-rocks",{"title":61,"path":62,"stem":63},"Créer votre premier jeu vidéo — le guide pragmatique","\u002F2026-05-creer-jeu-video-debutant","2026-05-creer-jeu-video-debutant",{"title":65,"path":66,"stem":67},"Le tableau de bord élève — mode d'emploi","\u002F2026-05-dashboard-eleve-mode-emploi","2026-05-dashboard-eleve-mode-emploi",{"title":69,"path":70,"stem":71},"Évaluations notées, auto-évaluations — qui sert à quoi","\u002F2026-05-evaluations-et-auto-eval","2026-05-evaluations-et-auto-eval",{"title":73,"path":74,"stem":75},"La Nuit du Code 2026 — coder en équipe, manette en main","\u002F2026-05-nuit-du-code-2026","2026-05-nuit-du-code-2026",{"title":77,"path":78,"stem":79},"Pourquoi LLVM ?","\u002F2026-05-pourquoi-llvm","2026-05-pourquoi-llvm",{"title":81,"path":82,"stem":83},"git bisect : trouver un bug en log(n) étapes","\u002F2026-05-tuto-git-bisect","2026-05-tuto-git-bisect",{"id":85,"title":81,"authors":86,"body":89,"category":218,"date":219,"description":220,"extension":221,"featured":222,"image":223,"meta":224,"navigation":225,"path":82,"readingTime":119,"seo":226,"stem":83,"__hash__":227},"posts\u002F2026-05-tuto-git-bisect.md",[87],{"name":88},"Mathieu N.",{"type":90,"value":91,"toc":214},"minimark",[92,101,106,172,183,187,207,210],[93,94,95,96,100],"p",{},"Vous avez un bug. Vous savez qu'il y a deux semaines, ça marchait. Et il y a eu\n80 commits depuis. ",[97,98,99],"code",{},"git bisect"," divise le problème par deux à chaque étape.",[102,103,105],"h2",{"id":104},"la-méthode","La méthode",[107,108,113],"pre",{"className":109,"code":110,"language":111,"meta":112,"style":112},"language-bash shiki shiki-themes github-light github-light github-dark","git bisect start\ngit bisect bad                  # le HEAD actuel est cassé\ngit bisect good \u003Ccommit-ok>     # un commit de référence sain\n","bash","",[97,114,115,131,145],{"__ignoreMap":112},[116,117,120,124,128],"span",{"class":118,"line":119},"line",1,[116,121,123],{"class":122},"snPdu","git",[116,125,127],{"class":126},"sIIMD"," bisect",[116,129,130],{"class":126}," start\n",[116,132,134,136,138,141],{"class":118,"line":133},2,[116,135,123],{"class":122},[116,137,127],{"class":126},[116,139,140],{"class":126}," bad",[116,142,144],{"class":143},"sCsY4","                  # le HEAD actuel est cassé\n",[116,146,148,150,152,155,159,162,166,169],{"class":118,"line":147},3,[116,149,123],{"class":122},[116,151,127],{"class":126},[116,153,154],{"class":126}," good",[116,156,158],{"class":157},"s8jYJ"," \u003C",[116,160,161],{"class":126},"commit-o",[116,163,165],{"class":164},"sxrX7","k",[116,167,168],{"class":157},">",[116,170,171],{"class":143},"     # un commit de référence sain\n",[93,173,174,175,178,179,182],{},"Git checkout un commit pile au milieu. Vous testez. ",[97,176,177],{},"git bisect good"," ou\n",[97,180,181],{},"git bisect bad",". Et on recommence.",[102,184,186],{"id":185},"automatiser","Automatiser",[107,188,190],{"className":109,"code":189,"language":111,"meta":112,"style":112},"git bisect run npm test\n",[97,191,192],{"__ignoreMap":112},[116,193,194,196,198,201,204],{"class":118,"line":119},[116,195,123],{"class":122},[116,197,127],{"class":126},[116,199,200],{"class":126}," run",[116,202,203],{"class":126}," npm",[116,205,206],{"class":126}," test\n",[93,208,209],{},"Git exécute le test pour vous à chaque dichotomie. Pour 80 commits, ça donne\n7 itérations max. Magique.",[211,212,213],"style",{},"html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":112,"searchDepth":133,"depth":133,"links":215},[216,217],{"id":104,"depth":133,"text":105},{"id":185,"depth":133,"text":186},"tuto","2026-05-08","Un outil méconnu pour traquer la commit fautive sans relire 300 diffs.","md",false,null,{},true,{"title":81,"description":220},"Wm54QL-mZbxuU4Znb2PQu6t7B3qevn60xBBZ-HIDWCk",[229,223],{"title":77,"path":78,"stem":79,"description":230,"category":231,"readingTime":119,"children":-1},"Une infrastructure de compilation modulaire qui change la façon dont les langages voient le jour.","veille",1788015772044]