¿Cómo se elimina una etiqueta Git que ya ha sido enviada?
Sólo tienes que empujar una referencia "vacía" al nombre de la etiqueta remota:
git push origin :tagname
O, más expresivamente, utilizar la opción --delete
(o -d
si tu versión de git es anterior a la 1.8.0):
git push --delete origin tagname
Ten en cuenta que git tiene un espacio de nombres de etiqueta y otro de rama, por lo que puedes usar el mismo nombre para una rama y para una etiqueta. Si quieres asegurarte de que no puedes eliminar accidentalmente la rama en lugar de la etiqueta, puedes especificar full ref que nunca eliminará una rama:
git push origin :refs/tags/tagname
Si también necesita eliminar la etiqueta local, utilice:
git tag --delete tagname
Empujar una rama, etiqueta u otra ref a un repositorio remoto implica especificar "¿qué repo, qué fuente, qué destino?"
git push remote-repo source-ref:destination-ref
Un ejemplo del mundo real donde usted empuja su rama maestra a la rama maestra del origen es:
git push origin refs/heads/master:refs/heads/master
Que debido a las rutas por defecto, se puede acortar a:
git push origin master:master
Las etiquetas funcionan de la misma manera:
git push origin refs/tags/release-1.0:refs/tags/release-1.0
Que también se puede acortar a:
git push origin release-1.0:release-1.0
Al omitir la ref de origen (la parte antes de los dos puntos), se empuja 'nada' al destino, eliminando la ref en el extremo remoto.
Si tiene una etiqueta remota v0.1.0
para borrar, y su remota es origin
, entonces simplemente:
git push origin :refs/tags/v0.1.0
Si también necesita eliminar la etiqueta localmente:
git tag -d v0.1.0
Ver la respuesta de Adam Franco para una explicación de la inusual sintaxis :
de Git para el borrado.