Comme mentionné dans la page de manuel git-show, ceci est documenté dans gitrevisions.
:, par ex. HEAD:README, :README, master:./README
Un suffixe : suivi d'un chemin nomme le blob ou l'arbre au chemin donné dans l'objet tree-ish nommé par la partie avant les deux-points. :chemin (avec une partie vide avant les deux-points) est un cas spécial de la syntaxe décrit ci-dessous : contenu enregistré dans l'index au chemin donné. Un chemin commençant par ./ ou ../ est relatif au répertoire de travail actuel. Le chemin donné sera converti pour être relatif au répertoire racine de l'arbre de travail. C'est très utile pour adresser un blob ou un arbre à partir d'un commit ou d'un arbre qui a la même structure d'arbre que le répertoire de travail.
C'est assez peu clair. C'est une manière de dissocier le fait de demander à afficher une révision et de demander à afficher un fichier.
révision:nom_fichier
vous montrera le nom du fichier à une révision particulière.
:nom_fichier
sans la révision vous montrera le fichier tel qu'il apparaît dans la zone de staging (aussi connue sous le nom de "l'index").
Ceci fonctionnera sur les commandes qui peuvent prendre à la fois une révision ou un chemin de fichier. git-show
est le seul auquel je pense.