Aller au contenu principal
Dev Serein
Retour aux solutions
GitIntermédiaire

Chercher dans l'historique des commits

Retrouver un commit précis, une modification ou le moment où un bug a été introduit dans l'historique Git.

Quand un bug apparaît sans qu’on sache d’où il vient, ou qu’on cherche à retrouver un commit précis, parcourir l’historique Git à la main devient vite fastidieux.

Par exemple, une fonction se comporte mal depuis quelques jours, mais tu ne sais pas quel commit a introduit le problème parmi la centaine des deux dernières semaines.

Chercher un message de commit

Pour retrouver un commit à partir d’un mot dans son message :

git log --all --grep="fix login"

--all inclut toutes les branches, pas seulement celle sur laquelle tu es actuellement.

Chercher un changement de code précis

Pour retrouver les commits qui ont ajouté ou supprimé une ligne contenant un texte précis (une fonction, une variable) :

git log -S "calculateTotal"

Tu obtiendras une sortie similaire à :

commit 8f3a21c...
Author: Jane Doe
Date:   Mon Aug 4 14:22:03 2026

    refactor: extract calculateTotal into utils

Ajoute -p pour voir directement le diff de chaque commit trouvé :

git log -S "calculateTotal" -p

Trouver qui a modifié une ligne précise

Pour savoir qui a écrit une ligne donnée et dans quel commit :

git blame fichier.js -L 10,20

Chaque ligne affiche le commit, l’auteur et la date de la dernière modification.

Trouver le commit qui a introduit un bug

Quand tu sais qu’un bug est apparu entre deux versions mais pas exactement quand, git bisect automatise la recherche par dichotomie.

Démarre la recherche :

git bisect start
git bisect bad                # le commit actuel est buggé
git bisect good v1.2.0        # cette version fonctionnait

Git te place automatiquement sur un commit intermédiaire. Teste ton application, puis indique le résultat :

git bisect good   # si le bug n'est pas présent
git bisect bad    # si le bug est présent

Répète jusqu’à ce que Git identifie le commit exact :

8f3a21c is the first bad commit

Termine la session pour revenir à l’état initial :

git bisect reset

Solution rapide avec un script automatisé

Si tu as un test qui détecte le bug automatiquement (ex: un script qui échoue si le bug est présent), tu peux automatiser tout le processus :

git bisect start HEAD v1.2.0
git bisect run npm test

Git exécute le test à chaque étape et détermine seul le commit fautif, sans intervention manuelle.

Cette méthode est particulièrement utile sur un gros historique où une recherche manuelle prendrait trop de temps.

SUPER CALCULATEUR / CONNEXION ÉTABLIE

UN PASSAGE SECRET DANS DEV SEREIN

Bienvenue sur
Code Lyoko.

Le monde virtuel n’était qu’à quelques lettres.
Jérémie a ouvert la connexion. À toi de jouer.

Des arbres infinis, des chemins suspendus. Garde un œil sur la mer numérique.

LYOKO-GUERRIERS

Aelita · Yumi · Ulrich · Odd

SCAN DU TERRITOIREFORÊT / 01

ALERTE XANA · TOUR ACTIVÉE

On compte sur toi, Aelita.