Aller au contenu
Développement medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Consulter l'historique Git avec git log

10 min de lecture

Ce guide vous apprend à explorer l’historique de vos commits avec git log. Vous irez bien au-delà du simple listing : filtrer par auteur, par date, par fichier, rechercher un mot dans les modifications, et formater la sortie pour la rendre lisible. C’est une compétence essentielle pour comprendre l’évolution d’un projet et retrouver l’origine d’un changement.

Prérequis : un dépôt avec quelques commits.

  • git log : afficher l’historique des commits
  • Options de formatage : --oneline, --graph, --pretty
  • Filtres : par auteur, date, fichier, nombre de commits
  • Recherche : trouver un commit par son contenu ou son message
  • git show : inspecter le contenu détaillé d’un commit

La commande git log affiche la liste des commits, du plus récent au plus ancien :

Fenêtre de terminal
git log

Sortie attendue :

commit 3f7a2b1c8e9d4f5a6b7c8d9e0f1a2b3c4d5e6f7a (HEAD -> main)
Author: Stéphane ROBERT <stephane@example.com>
Date: Fri Mar 28 14:30:00 2026 +0100
Ajout de la page de contact
commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Stéphane ROBERT <stephane@example.com>
Date: Fri Mar 28 10:15:00 2026 +0100
Création de la structure du projet
commit 1f2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d
Author: Stéphane ROBERT <stephane@example.com>
Date: Thu Mar 27 16:00:00 2026 +0100
Initial commit

Chaque commit affiche son SHA complet, l’auteur, la date et le message. Sur un projet avec beaucoup de commits, cette sortie défile. Appuyez sur q pour quitter le pager.

L’option la plus utilisée au quotidien. Chaque commit tient sur une ligne :

Fenêtre de terminal
git log --oneline

Sortie attendue :

3f7a2b1 (HEAD -> main) Ajout de la page de contact
a1b2c3d Création de la structure du projet
1f2d3e4 Initial commit

Le SHA est abrégé à 7 caractères (suffisamment unique dans la plupart des projets).

Pour visualiser les branches et les merges dans le terminal :

Fenêtre de terminal
git log --oneline --graph --all --decorate

Sortie attendue (projet avec des branches) :

* e5f6a7b (HEAD -> main) Merge branch 'feature/contact'
|\
| * d4c3b2a (feature/contact) Ajout du formulaire de contact
| * c3b2a1f Styles du formulaire
|/
* a1b2c3d Création de la structure du projet
* 1f2d3e4 Initial commit

Les lignes |, \ et / dessinent les branches. L’étoile * marque chaque commit. C’est l’équivalent d’un outil graphique, directement dans votre terminal.

Pour un contrôle total sur l’affichage :

Fenêtre de terminal
git log --pretty=format:"%h %an %ar %s"

Sortie attendue :

3f7a2b1 Stéphane ROBERT 2 hours ago Ajout de la page de contact
a1b2c3d Stéphane ROBERT 6 hours ago Création de la structure du projet
1f2d3e4 Stéphane ROBERT 1 day ago Initial commit

Les principaux placeholders :

PlaceholderSignificationExemple
%HSHA complet3f7a2b1c8e9d...
%hSHA abrégé3f7a2b1
%anNom de l’auteurStéphane ROBERT
%aeEmail de l’auteurstephane@example.com
%arDate relative2 hours ago
%aiDate ISO2026-03-28 14:30:00
%sMessage (première ligne)Ajout de la page de contact
%dNoms de ref (branches, tags)(HEAD -> main)
Fenêtre de terminal
git log --stat --oneline

Sortie attendue :

3f7a2b1 Ajout de la page de contact
contact.html | 25 +++++++++++++++++++++++++
style.css | 8 ++++++++
2 files changed, 33 insertions(+)

Le --stat affiche la liste des fichiers modifiés avec le nombre de lignes ajoutées (+) et supprimées (-).

Pour afficher le diff complet de chaque commit :

Fenêtre de terminal
git log -p -1

L’option -1 limite à un seul commit. Sans cette limite, git log -p affiche le diff de chaque commit (très verbeux sur un long historique).

Fenêtre de terminal
git log -5 # Les 5 derniers commits
git log --oneline -10 # Les 10 derniers, format compact
Fenêtre de terminal
git log --author="Stéphane"

Git cherche le pattern dans le nom et l’email de l’auteur. Vous pouvez utiliser des expressions régulières :

Fenêtre de terminal
git log --author="alice\|bob" # Commits d'Alice OU Bob
Fenêtre de terminal
git log --since="2026-03-01" # Depuis le 1er mars
git log --until="2026-03-15" # Jusqu'au 15 mars
git log --since="2 weeks ago" # 2 dernières semaines
git log --since="2026-03-01" --until="2026-03-15" # Période précise

Pour voir uniquement les commits qui ont modifié un fichier précis :

Fenêtre de terminal
git log -- style.css
git log --oneline -- src/auth/

Le -- sépare les options de la liste de chemins. Il est optionnel quand il n’y a pas d’ambiguïté, mais c’est une bonne habitude de toujours le mettre.

Fenêtre de terminal
git log --grep="contact"

Cherche le mot “contact” dans les messages de commit.

Pour trouver le commit qui a ajouté ou supprimé un mot dans le code :

Fenêtre de terminal
git log -S "function login"

L’option -S (pickaxe) est extrêmement utile pour retrouver quand une fonction, une variable ou une configuration a été introduite.

Fenêtre de terminal
git log -S "API_KEY" --oneline

Les filtres se combinent naturellement :

Fenêtre de terminal
git log --author="Alice" --since="2026-03-01" --oneline -- src/

Cette commande affiche les commits d’Alice depuis le 1er mars qui ont touché des fichiers dans le dossier src/.

Pour voir le contenu détaillé d’un commit spécifique :

Fenêtre de terminal
git show 3f7a2b1

Sortie attendue :

commit 3f7a2b1c8e9d4f5a6b7c8d9e0f1a2b3c4d5e6f7a
Author: Stéphane ROBERT <stephane@example.com>
Date: Fri Mar 28 14:30:00 2026 +0100
Ajout de la page de contact
diff --git a/contact.html b/contact.html
new file mode 100644
index 0000000..1234567
--- /dev/null
+++ b/contact.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+...

git show affiche les métadonnées du commit et le diff complet des modifications. Vous pouvez utiliser un SHA abrégé (7 caractères suffisent).

Pour voir uniquement les noms de fichiers modifiés :

Fenêtre de terminal
git show --stat 3f7a2b1
BesoinCommande
Historique de basegit log
Compact (1 ligne/commit)git log --oneline
Avec graphe de branchesgit log --oneline --graph --all
Fichiers modifiés par commitgit log --stat
Diff completgit log -p
Par auteurgit log --author="nom"
Par dategit log --since="date" --until="date"
Par fichiergit log -- chemin/fichier
Par messagegit log --grep="mot"
Par contenu de codegit log -S "code"
Détail d’un commitgit show SHA
SymptômeCause probableSolution
git log ne montre rienAucun commit dans le dépôtVérifiez avec git status puis créez un premier commit
La sortie défile sans finPager actif (normal)Appuyez sur q pour quitter
git log --all ne montre pas les branches distantesBranches pas encore récupéréesgit fetch --all puis relancez
git log -S ne trouve pas le résultat attenduLe texte cherché contient des caractères spéciauxEntourez de guillemets simples : git log -S 'mon texte'
--author ne trouve personneLe nom ne correspond pas exactementEssayez avec un fragment : --author="début du nom"
  • git log --oneline est votre vue quotidienne de l’historique
  • git log --graph --all visualise les branches et les merges
  • Filtrez par auteur (--author), date (--since/--until), fichier (-- chemin) ou contenu (-S "code")
  • git show SHA inspecte le contenu détaillé d’un commit
  • Combinez les filtres pour des recherches précises
  • Créez un alias git lg pour le graphe quotidien

Ce site vous est utile ?

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

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn