git show
Apprenez la commande git show pour inspecter les commits, tags et fichiers à n'importe quelle révision. Options et exemples pratiques.
Définition
La commande git show affiche les détails d'un objet Git — le plus souvent un commit. Pour un commit, elle affiche le message de journal ainsi que le diff complet des modifications apportées, vous donnant une vue complète d'une seule révision. Elle peut également révéler des tags, des arbres et le contenu d'un fichier tel qu'il existait à n'importe quel moment de l'historique.
Utilisez git show lorsque vous savez déjà quel objet vous intéresse et souhaitez tout voir à son sujet sur un seul écran. Cette page couvre l'affichage des commits, la lecture de la sortie, l'affichage d'un fichier à n'importe quelle révision, l'inspection des tags, les options les plus utiles, et en quoi la commande diffère de git log et de git diff.
Afficher un commit
Sans arguments, git show affiche le commit le plus récent (HEAD) : son auteur, sa date, son message et les modifications qu'il a introduites.
git showPour inspecter n'importe quel autre commit, passez son hash, un nom de branche ou une référence relative :
git show a1b2c3d # by abbreviated hash
git show HEAD~2 # the commit two steps before HEAD
git show main # the tip of the main branch
git show HEAD@{1} # where HEAD pointed one move ago (via the reflog)La sortie combine ce que vous obtiendriez de git log et de git diff pour ce commit en particulier.
Lire la sortie
L'affichage typique d'un commit comprend un en-tête suivi d'un diff unifié :
commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Jane Dev <[email protected]m>
Date: Mon Jun 9 14:02:11 2025 +0200
Fix off-by-one error in pagination
diff --git a/src/page.js b/src/page.js
index 83db48f..f735c2e 100644
--- a/src/page.js
+++ b/src/page.js
@@ -10,7 +10,7 @@ function pageStart(page, perPage) {
- return page * perPage;
+ return (page - 1) * perPage;
}L'en-tête identifie le commit, son auteur et la date. Le bloc diff --git montre la modification : les lignes commençant par - ont été supprimées, celles commençant par + ont été ajoutées, et l'en-tête de section @@ ... @@ indique les numéros de ligne affectés. C'est le même format de patch que celui produit par git diff.
Afficher un fichier à une révision spécifique
Une fonctionnalité puissante est d'afficher un fichier exactement tel qu'il apparaissait dans un commit donné, sans rien extraire. Utilisez la syntaxe <commit>:<chemin> :
git show HEAD~3:src/index.jsCela envoie l'ancienne version de index.js vers votre terminal, sans toucher à votre répertoire de travail — idéal pour comparer ou copier un extrait du passé. Le chemin est relatif à la racine du dépôt, pas à votre répertoire courant. Pour inspecter la version en attente d'un fichier, utilisez un deux-points sans commit :
git show :src/index.js # the file as currently staged in the indexInspecter les tags
Lorsque vous pointez git show vers un tag annoté, il affiche le message du tag et les informations du tagueur, puis le commit auquel le tag fait référence :
git show v1.0.0C'est le moyen le plus rapide de voir qui a créé un tag de version et ce qu'il désigne. Consultez git tag pour en créer. Un tag léger n'a pas de métadonnées propres, donc git show passe directement à l'affichage du commit qu'il étiquette.
Afficher plusieurs objets à la fois
git show accepte plusieurs arguments et affiche chaque objet à son tour, du plus récent au plus ancien. Pratique pour examiner un petit ensemble de commits liés sans parcourir tout l'historique :
git show HEAD HEAD~1 v1.0.0Options utiles
Par défaut, git show inclut le diff complet. Les options ci-dessous permettent de réduire ou reformater cette sortie :
git show --stat HEAD # summary of files changed and line counts
git show --name-only HEAD # just the changed file names
git show -s HEAD # suppress the diff; show only the commit message
git show --pretty=oneline HEAD # compact one-line header
git show --format="%an %s" -s HEAD # custom format: author name + subjectLes espaces réservés de --format (et --pretty) sont partagés avec git log : %an est le nom de l'auteur, %s la ligne de sujet, %H le hash complet et %ad la date de l'auteur.
Options courantes
| Commande | Description |
|---|---|
git show | Affiche le dernier commit avec son diff complet. |
git show <commit> | Affiche un commit spécifique par hash, branche ou référence. |
git show <commit>:<file> | Affiche le contenu d'un fichier tel qu'il était à ce commit. |
git show --stat <commit> | Résume les fichiers modifiés et le nombre de lignes affectées. |
git show --name-only <commit> | Liste uniquement les noms des fichiers modifiés. |
git show -s <commit> | Affiche uniquement le message du commit, sans diff. |
git show <tag> | Affiche les métadonnées d'un tag et le commit qu'il désigne. |
git show vs git log et git diff
Ces trois commandes se recoupent mais répondent à des besoins différents. git log parcourt une plage de commits et est conçu pour naviguer dans l'historique. git diff compare deux états arbitraires. git show zoome sur un seul objet et vous en dit tout — ce qui en fait le choix naturel lorsque vous savez déjà quel commit vous intéresse.
Un flux de travail courant consiste à trouver le hash d'un commit avec git log ou git blame, puis à passer ce hash à git show pour lire la modification complète en détail.