¿Cómo etiquetar una confirmación anterior en Git?

Resuelto hogsolo asked hace 14 años • 8 respuestas

Somos nuevos en Git y quiero establecer una etiqueta al comienzo de nuestro repositorio. Nuestro código de producción es el mismo que el del repositorio inicial, pero hemos realizado confirmaciones desde entonces. Una etiqueta al principio nos permitiría "revertir" la producción a un estado estable conocido.

Entonces, ¿cómo agregar una etiqueta a una confirmación anterior y arbitraria?

hogsolo avatar Dec 10 '10 06:12 hogsolo
Aceptado

Ejemplo:

git tag -a v1.2 9fceb02 -m "Message here"

¿ Dónde 9fceb02está la parte inicial de la identificación de confirmación?

Luego puedes empujar la etiqueta usando git push origin v1.2.

Puede hacerlo git logpara mostrar todas las identificaciones de confirmación en su rama actual.

También hay un buen capítulo sobre etiquetado en el libro Pro Git.

Advertencia: esto crea etiquetas con la fecha actual (y ese valor es el que se mostrará en una página de lanzamientos de GitHub, por ejemplo). Si desea que la etiqueta tenga la fecha de confirmación, consulte otra respuesta .

dkinzer avatar Dec 09 '2010 23:12 dkinzer

Sólo 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"

# push to origin
git push origin --tags

# set HEAD back to whatever you want it to be
git checkout master

Detalles

La respuesta de @dkinzer crea etiquetas cuya fecha es la fecha actual (cuando ejecutó el git tagcomando), no la fecha de la confirmación. La ayuda de Git tagtiene una sección "Sobre etiquetas retroactivas" que dice:

Si ha importado algunos cambios de otro VCS y desea agregar etiquetas para las versiones principales de su trabajo, es útil poder especificar la fecha para incrustar dentro del objeto de etiqueta; Dichos datos en el objeto de etiqueta afectan, por ejemplo, el orden de las etiquetas en la interfaz gitweb.

Para establecer la fecha utilizada en futuros objetos de etiqueta, establezca la variable de entorno GIT_COMMITTER_DATE(consulte la discusión posterior sobre posibles valores; 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 "Cómo etiquetar en Git" nos muestra que podemos extraer la hora del compromiso HEAD mediante:

git show --format=%aD  | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700

Podríamos extraer la fecha de una confirmación específica mediante:

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 la confirmación dos veces, parece más fácil simplemente cambiar el HEAD de esa confirmación y usarlo implícitamente en ambos comandos:

git checkout 9fceb02 

GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"
Phrogz avatar Feb 13 '2014 16:02 Phrogz

La forma más sencilla de hacer esto es:

git tag v1.0.0 f4ba1fc
git push origin --tags

siendo f4ba1fcel comienzo del hash del commit que deseas etiquetar y v1.0.0siendo la versión que deseas etiquetar.

PatrickNLT avatar Jun 02 '2014 14:06 PatrickNLT

OK , simplemente puedes hacer:

git tag -a <tag> <commit-hash>

Entonces, si desea agregar la etiqueta: 1.0.2 para confirmar e50f795, simplemente haga:

git tag -a 1.0.2 e50f795

También agregas un mensaje al final, usando -malgo como esto:

git tag -a 1.0.2 e50f795 -m "my message"

Después de todo, necesitas empujarlo al remote, para hacer eso, simplemente haz:

git push origin 1.0.2 

Si tiene muchas etiquetas que no desea mencionar una por una, simplemente haga:

git push origin --tags

para juntar todas las etiquetas...

Además, creé los pasos en la imagen a continuación, para obtener más aclaraciones sobre los pasos: creando una etiqueta en un hash de confirmación

También puedes agregar la etiqueta en Hub o usar herramientas como SourceTree . Para evitar los pasos anteriores, en este caso inicié sesión en mi Bitbucket y lo hice desde allí:

  1. Vaya a su sucursal y busque el compromiso al que desea agregar la etiqueta y haga clic en él:

encuentra tu compromiso en bitbucket

  1. En la página de confirmación , a la derecha, busque donde dice No tagsy haga clic en el +icono:

busca donde dice Sin etiquetas

  1. En el cuadro de nombre de la etiqueta, agregue su etiqueta:

agregar nombre de etiqueta

  1. Ahora verá que la etiqueta se ha creado correctamente:

ingrese la descripción de la imagen aquí

Alireza avatar Jul 08 '2017 07:07 Alireza