Git Bisect: Trovare il Commit che ha Introdotto un Bug

La test suite 猫 verde da tre settimane. Oggi npm test fallisce su un鈥檃sserzione che non ha niente a che fare con quello che hai appena modificato, e git log v1.4.0..HEAD mostra 340 commit di quattro persone dall鈥檜ltima release, di cui qualcuno era sicuro che funzionasse. Leggere ogni diff ti costa una giornata. Fare checkout di commit a caso 猫 pi霉 veloce, ma resta comunque non un piano. git bisect trasforma tutto questo in una ricerca binaria. Gli dai un commit che sai essere buono e uno che sai essere rotto; lui fa il checkout del commit a met脿 tra i due e aspetta che tu lo testi e riporti il risultato. Ogni risposta dimezza l鈥檌ntervallo. 340 commit si risolvono in al massimo 9 test, perch茅 2^9 = 512. ...

22 settembre 2026 路 6 minuti 路 1157 parole 路 SpaghettiCoder

Git Rebase vs Merge: differenze e quando usarli

Fai il pull dell鈥檜ltimo main e Git si blocca con CONFLICT (content): Merge conflict in checkout.js. Risolvi il conflitto e nel log compare un commit chiamato Merge branch 'main' into feature/checkout, appoggiato sopra i tre commit che avevi effettivamente scritto tu. Quattro commit, una sola modifica reale. Un collega che legge quella storia il mese prossimo non riesce pi霉 a distinguerli. git merge e git rebase rispondono alla stessa domanda: come allineo il mio branch alle modifiche fatte altrove. Lasciano tracce molto diverse, e scegliere quello sbagliato su un branch condiviso causa danni reali. ...

13 settembre 2026 路 8 minuti 路 1656 parole 路 SpaghettiCoder