"Git checkout tag-name" frente a "git reset - hard tag-name"

Sé que hay preguntas comoesta, pero eso no es lo que estoy preguntando.

También sé que:

git checkout tag-name:

Te separa de la rama. (es decir, movimientosHEAD puntero, mantieneBRANCH puntero)

git reset --hard tag-name:

No te separa de la rama, pero hace que el anterior se comprometa a "colgar". (es decir, mueve ambosHEAD yBRANCH punteros)

Me pregunto cuál tiene más sentido para la actualización de una etiqueta, es decir, si se debe restablecer o revisar una producción. Sé que un recolector de basura se puede ejecutar, eliminando compromisos pendientes, pero nuevamente, si la producción siempre se "extrae" antes del proceso de actualización de una etiqueta, no veo nada malo allí.

En caso de una actualización de producción a una etiqueta conreset ocheckout, considerando que unpull siempre se realiza antes de esta actualización llamada?