Solo el Código
# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02
# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m"v1.2"
# set HEAD back to whatever you want it to be
git checkout master
Detalles
La respuesta por @dkinzer crea etiquetas de cuya fecha es la fecha actual (cuando se ejecutó el git tag
de comandos), no de la fecha de la confirmación. El Git ayuda para tag
tiene una sección "Sobre la Retroactividad de las Etiquetas" que dice:
Si ha importado algunos cambios desde otro VCS y quisiera agregar etiquetas para las versiones principales de su trabajo, es útil ser capaz de especificar la fecha de incrustar dentro de la etiqueta object; estos datos en la etiqueta de objeto afecta, por ejemplo, el orden de las etiquetas en el gitweb de la interfaz.
Para establecer la fecha utilizada en el futuro de la etiqueta de objetos, establezca la variable de entorno GIT_COMMITTER_DATE
(ver la discusión posterior de los valores posibles; la forma más común es "AAAA-MM-DD HH:MM").
Por ejemplo:
$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1
La página de "Cómo Etiquetar en Git" nos muestra que podemos extraer el momento de la HEAD cometer a través de:
git show --format=%aD | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700
Podríamos extraer de la fecha de un determinado cometer a través de:
GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \
git tag -a v1.2 9fceb02 -m "v1.2"
Sin embargo, en lugar de repetir el cometer dos veces, parece más fácil cambiar la HEAD a que se comprometen y utilizar de forma implícita en ambos comandos:
git checkout 9fceb02
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"