Quiero eliminar todas las etiquetas de un repositorio de Git. ¿Cómo puedo hacer eso?
Usando git tag -d tagname
eliminar la etiqueta tagname
localmente y usando git push --tags
Actualizo las etiquetas en el proveedor git
Lo intenté:
git tag -d *
Pero veo que eso *
significa los archivos del directorio actual.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Considere que tengo muchas etiquetas, y quiero eliminarlas, todas.
git tag -l | xargs -n 1 git push --delete origin
eliminarlos del control remoto.Para eliminar etiquetas remotas (antes de eliminar etiquetas locales) simplemente haga:
y luego elimine las copias locales:
fuente
Puede ser más eficiente presionar eliminar todas las etiquetas en un comando. Especialmente si tienes varios cientos.
En un shell adecuado que no sea de Windows, elimine todas las etiquetas remotas:
Luego elimine todas las etiquetas locales:
Esto debería estar bien siempre que no tenga un nombre
'
en sus etiquetas. Para eso, los siguientes comandos deberían estar bien.Probablemente existan otras formas de tomar una lista de líneas, envolverlas entre comillas, convertirlas en una sola línea y luego pasar esa línea a un comando. Teniendo en cuenta que este es el mejor entorno para desollar gatos y todo.
fuente
xargs -L 1
?git tag
devuelve las etiquetas, una por línea, y luego lasxargs -L 1
genera una por línea, entonces, ¿para qué sirve?Para usuarios de Windows que usan PowerShell:
Esto elimina todas las etiquetas devueltas
git tag
al ejecutargit tag -d
cada línea devuelta.fuente
Agregando a la respuesta de Stefan que faltaba cómo eliminar etiquetas del control remoto. Para Windows Powershell, puede ejecutar esto para eliminar las etiquetas remotas primero seguidas de las etiquetas locales.
fuente
Si no tiene las etiquetas en su repositorio local, puede eliminar las etiquetas remotas sin tener que llevarlas a su repositorio local.
No olvide reemplazar "origen" por el nombre de su controlador remoto.
fuente
Para usuarios de Windows:
Esto elimina todas las etiquetas locales ejecutando git tag y alimentando esa lista a git tag -d:
(Encontrado en: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
fuente
También puedes usar:
fuente
Como todas estas opciones solo funcionan en Linux, aquí está el equivalente de Windows para cualquiera que tenga que lidiar con eso:
fuente
Tengo que borrar las etiquetas con prefijo
por ejemplo, tengo que eliminar las etiquetas v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
Para enumerar todas las etiquetas con prefijo
Para borrar las etiquetas
Así es como funciona la primera declaración
fuente
Powershell v7 admite foreach paralelo si tiene muchas etiquetas ascendentes (origen) que necesita eliminar:
fuente