git log
Afficher l’historique des commits
La commande 'git log' affiche l’historique des commits de votre dépôt. Elle montre les commits dans l’ordre chronologique inverse (les plus récents d’abord), avec le hash, l’auteur, la date et le message. Ses nombreuses options permettent d’adapter le format de sortie, de filtrer les commits et de suivre l’historique d’un fichier. Indispensable pour comprendre l’histoire du projet et retrouver des modifications précises.
Synopsis
git log [<options>] [<revision-range>] [[--] <path>...]Options
Choisir la bonne option
Formats de sortie du log
Choisir le format adapté à vos besoins
| Commande | Montre | Verbosité | Idéal pour |
|---|---|---|---|
git log | Tous les détails | Élevé | Examen détaillé |
git log --oneline | Hash + message | Faible | Vue d’ensemble rapide |
git log --stat | Fichiers modifiés par commit | Moyen | Voir l’ampleur des modifications |
git log -p | Diff complet | Très élevée | Revue de code |
Filtrer les commits
Trouver des commits précis dans l’historique
| Commande | Filtrer par | Exemple |
|---|---|---|
--author | Personne qui a écrit le commit (auteur ; utilisez --committer pour le committer) | --author="John" |
--since/--until | Plage de dates | --since="2024-01-01" |
--grep | Message de commit | --grep="fix" |
-- <path> | Fichiers modifiés | -- src/app.js |
Log ou reflog
Savoir quand utiliser chacun
| Commande | Montre | Survit à un reset ? | À utiliser pour |
|---|---|---|---|
git log | Historique des commits de la branche | No | Consultation normale de l’historique |
git reflog | Tous les mouvements de HEAD | Oui | Récupérer des commits perdus |
Exemples
Voir les commits récents
git logAffiche l’historique complet avec hash, auteur, date et message.
Vue compacte sur une ligne
git log --onelineAffiche chaque commit sur une ligne, avec hash court et message.
Voir l’historique d’un fichier
git log -- path/to/file.jsN’affiche que les commits qui ont modifié le fichier indiqué.
Graphe visuel des branches
git log --oneline --graph --allAffiche un graphe en texte de toutes les branches et de leurs commits.
Exemples de workflows
git log --oneline -10Coup d’œil rapide aux 10 derniers commits
git log -p -1Voir le diff complet du commit le plus récent
git log --oneline -- path/to/file.jsLister les commits qui ont modifié ce fichier
git log -p -- path/to/file.jsVoir les modifications réelles
git blame path/to/file.jsVoir qui a écrit chaque ligne
git log --oneline --graph --allVisualisation complète des branches
git log --oneline --graph main..featureCommits de feature absents de main
Dépannage
La sortie du log est trop longue / impossible d’en sortir
Cause : Git utilise le pager 'less' par défaut
Appuyez sur 'q' pour quitter. Utilisez -n pour limiter les commits, ou redirigez vers head : git log --oneline | head -20
Je ne vois pas les commits des autres branches
Cause : Par défaut, git log ne montre que les commits accessibles depuis HEAD (votre branche courante)
Utilisez --all : git log --oneline --all
Je ne trouve pas un commit dont je connais l’existence
Cause : Le commit est peut-être sur une autre branche, ou a été retiré par un reset
Essayez git reflog pour voir toutes les positions récentes de HEAD, y compris après des resets
Le log affiche trop / trop peu d’informations
Cause : Le format par défaut ne convient peut-être pas à vos besoins
Utilisez --oneline pour du bref, -p pour du détaillé, --stat pour un résumé par fichier
Astuces et pièges
Bonnes pratiques
- ✓Utilisez --oneline pour une vue d’ensemble rapide, le log complet pour un examen détaillé
- ✓Combinez --graph --all --oneline pour visualiser toutes les branches
- ✓Utilisez -n pour limiter la sortie quand seuls les commits récents vous intéressent
- ✓Filtrez par auteur, date ou chemin pour trouver des modifications précises
- ✓Utilisez git log main..feature pour voir les commits propres à une branche
Erreurs fréquentes
- ✗Ne pas savoir qu’on peut appuyer sur 'q' pour quitter l’affichage du log (qui utilise le pager less par défaut).
- ✗Oublier --all quand on veut voir les commits de toutes les branches, pas seulement de la courante.
- ✗Utiliser git log quand il faut git reflog - log montre l’historique des commits, reflog montre tous les changements de références, resets compris.
- ✗Ne pas mettre -- avant les chemins de fichiers, ce qui peut créer une ambiguïté avec des noms de branche.
FAQ
Appuyez sur 'q'. Git log utilise le pager 'less'. Vous pouvez aussi limiter la sortie avec -n ou la rediriger vers head.
Utilisez --all : git log --oneline --all. Sans lui, vous ne voyez que les commits accessibles depuis votre branche courante (HEAD).
Utilisez -p (patch) : git log -p. Ajoutez -1 pour ne voir que le plus récent : git log -p -1
Utilisez --author : git log --author="name". Reconnaît des morceaux de noms et d’e-mails (sensible à la casse ; ajoutez -i pour l’ignorer).
Log montre l’historique des commits. Reflog montre tous les mouvements de HEAD, resets compris. Utilisez reflog pour récupérer des commits « perdus ».