Aller au contenu
English
English
Développement medium

Debug et recherche dans Git : bisect, blame, grep

10 min de lecture

Quand un bug apparaît et que vous ne savez pas depuis quand il est là, Git dispose d'outils qui localisent le problème en quelques minutes. git bisect fait une recherche dichotomique dans l'historique : vous lui donnez un commit "bon" et un commit "mauvais", il trouve le commit coupable en $O(\log n)$ opérations.

Ces deux guides couvrent l'investigation d'un dépôt sous deux angles : celui du débogage de régression (bisect, blame) et celui de la recherche de code (grep, log -S, log -L).

BesoinOutilGuide
Trouver le commit qui a introduit un buggit bisectDebug : bisect et blame
Savoir qui a écrit une ligne de codegit blameDebug : bisect et blame
Automatiser la détection du commit fautifgit bisect run <script>Debug : bisect et blame
Chercher une chaîne dans les fichiers actuelsgit grepRechercher dans Git
Trouver quand une chaîne est apparue / a disparugit log -S (pickaxe)Rechercher dans Git
Suivre l'historique d'une fonctiongit log -L :func:fileRechercher dans Git
  • git bisect start → git bisect bad → git bisect good <sha> : Git checkout automatiquement les commits à tester
  • git bisect run ./test.sh automatise le processus, le script doit retourner 0 (bon) ou non-zéro (mauvais)
  • git blame -L 10,20 fichier.py affiche l'auteur et le commit de chaque ligne sur la plage 10-20
  • git blame -C détecte les lignes copiées depuis d'autres fichiers, évite les faux positifs
  • git log -S "motclé" (pickaxe) trouve les commits qui ont ajouté ou supprimé cette chaîne, pas les commits qui l'ont juste déplacée

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens ce site gratuitement, sans publicité, sans profilage et sans compte à créer. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn