Comprendre le format –oneline
Un git log ordinaire consacre plusieurs lignes à chaque commit. git log --oneline n’en utilise qu’une. La documentation de git log définit --oneline comme un raccourci de --pretty=oneline --abbrev-commit utilisés ensemble : l’identifiant du commit et son message sur une seule ligne, l’identifiant étant réduit à un préfixe qui désigne encore le commit sans ambiguïté.
Pour comparer les formats, créez un dépôt jetable. C’est celui du guide git log –graph : passez la préparation si vous l’avez déjà. Les dates sont fixées, donc ces commandes donnent les mêmes identifiants que les sorties ci-dessous. Changez quoi que ce soit et les vôtres seront différents. Les sorties viennent de Git 2.23, en anglais, et sont identiques avec Git 2.30 et 2.54.
mkdir demo-log && cd demo-log
git init
git config user.name "Example Dev"
git config user.email [email protected]
commit_at() { git add . && GIT_AUTHOR_DATE="$1" GIT_COMMITTER_DATE="$1" git commit -q -m "$2"; }
echo "# Demo" > README.md && commit_at 2026-09-01T10:00:00+0000 "Add README"
git branch -M main
echo "start" > app.txt && commit_at 2026-09-02T10:00:00+0000 "Add app skeleton"
echo "port=8080" > config.txt && commit_at 2026-09-03T10:00:00+0000 "Add default config"
git checkout -b feature
echo "search" >> app.txt && commit_at 2026-09-05T10:00:00+0000 "Add search option"
echo "search ok" > tests.txt && commit_at 2026-09-09T10:00:00+0000 "Add search tests"
git checkout main
git checkout -b docs
echo "# Demo guide" > README.md && echo "TODO" > guide.txt && commit_at 2026-09-06T10:00:00+0000 "Draft user guide"
git checkout main
echo "# Demo app" > README.md && commit_at 2026-09-08T10:00:00+0000 "Rename project title"
echo "port=9000" > config.txt && commit_at 2026-09-10T10:00:00+0000 "Change default port"
GIT_AUTHOR_DATE=2026-09-12T10:00:00+0000 GIT_COMMITTER_DATE=2026-09-12T10:00:00+0000 git merge feature --no-edit -m "Merge branch 'feature'"
Voici les trois commits les plus récents, d’abord avec l’identifiant complet, puis avec --oneline :
git log --pretty=oneline -n 3
e6d515ee0fe2be9bcedf2c17df09d1f89e06c799 Merge branch 'feature'
d2422638c75fcc7bae1bcc7a041d5a99d66cead8 Change default port
c7bfac7154d36e606685f5b1e10a43a2e5ba7b96 Add search tests
git log --oneline -n 3
e6d515e Merge branch 'feature'
d242263 Change default port
c7bfac7 Add search tests
-n 3 limite la sortie aux trois premiers commits. L’identifiant abrégé suffit aux autres commandes, ce qui vous servira à la fin de ce guide pour ouvrir un commit. Pour un préfixe plus long, --abbrev=<n> en fixe la longueur minimale.
Ajouter le graphe et les références
--graph dessine les lignes entre les commits, et --decorate affiche les noms des références qui pointent vers les commits montrés. Avec --oneline, ils donnent un graphe compact. Le graphe ci-dessous est la sortie réelle de la commande. Les notes après <-- ne sont pas affichées par Git : elles ont été ajoutées à la main pour expliquer chaque ligne.
git log --oneline --graph --decorate
* e6d515e (HEAD -> main) Merge branch 'feature' <-- identifiant abrégé, références, message
|\ <-- le merge a deux parents
| * c7bfac7 (feature) Add search tests <-- sommet de feature
| * b13288d Add search option
* | d242263 Change default port <-- côté de main
* | 3dc02d2 Rename project title
|/ <-- les deux lignes se rejoignent
* ccb94c7 Add default config <-- ancêtre commun
* 9cfbfd0 Add app skeleton
* 3d7dc15 Add README <-- commit racine
Chaque ligne suit le même schéma : les caractères du graphe, l’identifiant abrégé, les références entre parenthèses quand une référence pointe là, puis le message. HEAD -> main signifie que HEAD est sur main, et (feature) marque le sommet de feature. Les références vous permettent de retrouver vos repères après une coupure : gardez donc --decorate dans toutes les variantes ci-dessous.
La documentation donne à --decorate la valeur par défaut auto : les noms s’affichent quand la sortie va vers un terminal, sauf si log.decorate est configuré. Les sorties de cette page sont capturées sans terminal, d’où l’option écrite explicitement. Dans votre terminal, les parenthèses apparaissent en général même sans elle.
Limiter la sortie sans masquer le contexte utile
Chaque limite masque quelque chose. Sachez quoi, et la vue compacte reste lisible.
Par nombre. -n 5 garde les cinq premiers commits qui seraient affichés :
git log --oneline --graph --decorate -n 5
* e6d515e (HEAD -> main) Merge branch 'feature'
|\
| * c7bfac7 (feature) Add search tests
| * b13288d Add search option
* | d242263 Change default port
* | 3dc02d2 Rename project title
|/
La coupure tombe avant l’ancêtre commun : le |/ final est donc une ligne qui continue hors de vue.
Par date. --since affiche les commits plus récents qu’une date. Indiquez aussi l’heure et le fuseau. Lors de tests avec Git 2.23, 2.30 et 2.54, un simple --since=2026-09-09 a été complété avec l’heure courante, si bien que le résultat dépendait de l’heure à laquelle la commande était lancée. La forme explicite ci-dessous donne toujours le même résultat :
git log --oneline --graph --decorate --since="2026-09-09 00:00 +0000"
* e6d515e (HEAD -> main) Merge branch 'feature'
|\
| * c7bfac7 (feature) Add search tests
* d242263 Change default port
Par chemin. Après --, Git ne garde que les commits qui expliquent comment les fichiers correspondants sont devenus ce qu’ils sont :
git log --oneline --decorate -- config.txt
d242263 Change default port
ccb94c7 Add default config
Avec --graph, Git réécrit aussi les liens de parenté pour que les commits restants restent reliés. Pour app.txt, cela donne une ligne droite sans le merge, car seuls les commits qui expliquent ce fichier subsistent :
git log --oneline --graph --decorate -- app.txt
* b13288d Add search option
* 9cfbfd0 Add app skeleton
Par ligne d’historique. --first-parent ne suit que le premier parent à chaque merge. Les commits de feature disparaissent, mais le commit de merge montre qu’ils sont arrivés :
git log --oneline --decorate --first-parent
e6d515e (HEAD -> main) Merge branch 'feature'
d242263 Change default port
3dc02d2 Rename project title
ccb94c7 Add default config
9cfbfd0 Add app skeleton
3d7dc15 Add README
Ouvrir le détail d’un commit
La vue compacte dit ce qui s’est passé, pas ce qui a changé. Prenez un identifiant abrégé et donnez-le à git show :
git show --stat --oneline c7bfac7
c7bfac7 Add search tests
tests.txt | 1 +
1 file changed, 1 insertion(+)
--stat remplace le diff par un résumé des fichiers modifiés. Retirez-le pour lire le diff complet. Le guide de git show couvre le message, l’auteur, un fichier précis et les commits de merge.
GitMini présente les mêmes informations en colonnes : « Branches / tags », « Graph », « Message », « Author », « Date » et « SHA » (affichées en capitales ; dans une fenêtre étroite, SHA, Date puis Author disparaissent, dans cet ordre). Cliquez sur une ligne : le panneau de droite ouvre le commit avec son SHA, son auteur, ses parents et ses fichiers modifiés, avec les lignes ajoutées et supprimées pour chacun.

Sources
- Git : git-log, consulté le 4 octobre 2026.
- README du produit GitMini, consulté le 4 octobre 2026.