git show
Afficher un commit, un tag ou un fichier dans une version donnée
La commande 'git show' affiche un objet. Pour un commit, elle imprime l’auteur, la date et le message, puis le diff introduit par ce commit. Pour un tag annoté, elle montre le message du tag, puis le commit. Avec <commit>:<path>, elle imprime un fichier exactement tel qu’il était dans ce commit.
Synopsis
git show [<options>] [<object>...]Options
Choisir la bonne option
show, log et diff
Trois façons de regarder l’historique
| Commande | Montre |
|---|---|
git log | Une liste de commits |
git show <commit> | Un commit et ses modifications |
git diff A B | La différence entre deux versions quelconques |
Exemples
Dernier commit
git showAffiche HEAD avec son diff.
N’importe quel commit
git show a1b2c3dAffiche ce commit.
Un fichier dans un ancien commit
git show HEAD~2:app.jsImprime app.js tel qu’il était deux commits plus tôt.
Résumé seulement
git show --statLes fichiers modifiés au lieu du diff complet.
Exemples de workflows
git log --onelineLa trouver
git show --stat a1b2c3dQuels fichiers il a touchés
git show a1b2c3dLa modification complète
Dépannage
fatal: path 'x' does not exist in 'HEAD~1'
Cause : Le fichier n’existait pas dans ce commit, ou le chemin est faux
Utilisez le chemin depuis la racine du dépôt ; vérifiez avec git show --stat
Un commit de fusion n’affiche aucun diff
Cause : Les fusions n’affichent un diff combiné que pour les lignes en conflit
Utilisez git show -m ou git diff <merge>^1 <merge>
Astuces et pièges
Bonnes pratiques
- ✓Sur les gros commits, commencez par --stat.
- ✓Utilisez commit:path pour lire une ancienne version sans modifier vos fichiers.
Erreurs fréquentes
- ✗Écrire git show HEAD~1 app.js (un filtre) alors que vous vouliez HEAD~1:app.js (le contenu du fichier).
- ✗Utiliser un chemin relatif à votre dossier sans ./ dans commit:path — les chemins partent de la racine du dépôt.
FAQ
git show <commit>.
Pour la lire : git show <commit>:<path>. Pour la restaurer : git restore --source=<commit> <path>.