git log

Inspection et comparaison

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>...]
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (4)

Raccourci de --pretty=oneline --abbrev-commit. Affiche chaque commit sur une seule ligne avec un hash abrégé.

RecommandéHistorique compact sur une ligne — la meilleure vue d’ensemble au quotidien

Exemple

git log --oneline

Dessiner une représentation graphique en texte de l’historique. Montre visuellement la structure des branches et des fusions.

RecommandéMontre où les branches bifurquent et fusionnent ; à associer à --oneline

Exemple

git log --oneline --graph

Montrer les commits accessibles depuis toutes les références - chaque branche locale, branche de suivi distante et tag (plus le stash) - pas seulement HEAD. Indispensable avec --graph.

RecommandéAvec --graph, montre chaque branche, tag et référence de suivi distante

Exemple

git log --oneline --all

Limiter le nombre de commits affichés. -n 5 n’affiche que les 5 commits les plus récents ; -5 et --max-count=5 sont des formes équivalentes.

RecommandéLimite la sortie aux N derniers commits

Exemple

git log -n 5

Intermédiaire (2)

Afficher le diff (patch) introduit par chaque commit. Montre exactement ce qui a changé dans chaque commit. Les commits de fusion n’affichent pas de diff par défaut.

Si nécessaireLes diffs complets sont longs ; combinez avec -n ou un chemin. Les fusions n’affichent pas de diff par défaut

Exemple

git log -p

Filtrer les commits dont le nom ou l’e-mail de l’auteur correspond au motif (une regex sensible à la casse ; ajoutez -i pour l’ignorer). Pratique pour voir ce qu’une personne a écrit.

Si nécessaireFiltre par auteur : regex sensible à la casse, ajoutez -i pour l’ignorer

Exemple

git log --author="John"

Choisir la bonne option

Formats de sortie du log

Choisir le format adapté à vos besoins

CommandeMontreVerbositéIdéal pour
git logTous les détailsÉlevéExamen détaillé
git log --onelineHash + messageFaibleVue d’ensemble rapide
git log --statFichiers modifiés par commitMoyenVoir l’ampleur des modifications
git log -pDiff completTrès élevéeRevue de code

Filtrer les commits

Trouver des commits précis dans l’historique

CommandeFiltrer parExemple
--authorPersonne qui a écrit le commit (auteur ; utilisez --committer pour le committer)--author="John"
--since/--untilPlage de dates--since="2024-01-01"
--grepMessage de commit--grep="fix"
-- <path>Fichiers modifiés-- src/app.js

Log ou reflog

Savoir quand utiliser chacun

CommandeMontreSurvit à un reset ?À utiliser pour
git logHistorique des commits de la brancheNoConsultation normale de l’historique
git reflogTous les mouvements de HEADOuiRécupérer des commits perdus

Exemples

Voir les commits récents

git log

Affiche l’historique complet avec hash, auteur, date et message.


Vue compacte sur une ligne

git log --oneline

Affiche chaque commit sur une ligne, avec hash court et message.


Voir l’historique d’un fichier

git log -- path/to/file.js

N’affiche que les commits qui ont modifié le fichier indiqué.


Graphe visuel des branches

git log --oneline --graph --all

Affiche un graphe en texte de toutes les branches et de leurs commits.

Exemples de workflows

1
git log --oneline -10

Coup d’œil rapide aux 10 derniers commits

2
git log -p -1

Voir le diff complet du commit le plus récent

1
git log --oneline -- path/to/file.js

Lister les commits qui ont modifié ce fichier

2
git log -p -- path/to/file.js

Voir les modifications réelles

3
git blame path/to/file.js

Voir qui a écrit chaque ligne

1
git log --oneline --graph --all

Visualisation complète des branches

2
git log --oneline --graph main..feature

Commits 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

A:

Appuyez sur 'q'. Git log utilise le pager 'less'. Vous pouvez aussi limiter la sortie avec -n ou la rediriger vers head.

A:

Utilisez --all : git log --oneline --all. Sans lui, vous ne voyez que les commits accessibles depuis votre branche courante (HEAD).

A:

Utilisez -p (patch) : git log -p. Ajoutez -1 pour ne voir que le plus récent : git log -p -1

A:

Utilisez --author : git log --author="name". Reconnaît des morceaux de noms et d’e-mails (sensible à la casse ; ajoutez -i pour l’ignorer).

A:

Log montre l’historique des commits. Reflog montre tous les mouvements de HEAD, resets compris. Utilisez reflog pour récupérer des commits « perdus ».