lo que es desreference en el context de git show-ref -d

Aquí está la página man para git show-ref -d . También tienen un ejemplo en la parte inferior. Todavía no puedo entender lo que hace la desreference?

En git, una label "normal" (anotada, no liviana) es un object en sí mismo, que contiene metadatos y el SHA1 del object que label. Hay una bonita image en la sección del libro de la comunidad git sobre el model de objects git (desplácese hacia abajo).

Entonces, cuando usas show-ref en una label normal, normalmente te dará información sobre el object de label. Con la opción de -d/--dereference , desreferencerá la label en el object al que se refiere la label, y proporcionará información al respecto.

Y una nota sobre tags ligeras frente a tags anotadas, en caso de que no lo sepan: se crea una label liviana al usar git tag <tag name> (es decir, sin ninguna de las opciones que proporcionan metadatos, como -a , -s , o -u ). No es un object de label en absoluto, solo un ref que apunta directamente al object que ha labeldo. Si proporciona una de esas opciones, está adjuntando metadatos a la label, por lo que git crea un object de label para contener eso.