usar tipos tener tag repositorio qué proyecto podemos partir para otro oneline nuevo nuestros mayor log herramienta hacer hace existen etiquetas eliminar crear control git git-tag

tipos - Eliminar todas las etiquetas de un repositorio de Git



¿qué hace git log-oneline? (9)

Añadiendo a la respuesta de Stefan que faltaba cómo eliminar etiquetas desde el control remoto. Para Windows PowerShell, puede ejecutar esto para eliminar primero las etiquetas remotas, seguidas de las etiquetas locales.

git tag | foreach-object -process { git push origin --delete $_ } git tag | foreach-object -process { git tag -d $_ }

Quiero eliminar todas las etiquetas de un repositorio de Git. ¿Cómo puedo hacer eso?

Usando la git tag -d tagname borre la etiqueta tagname localmente, y usando git push --tags Actualizo las etiquetas en el proveedor de git.

Lo intenté:

git tag -d *

Pero veo que * refiere a 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.


Como todas estas opciones solo funcionan en Linux, este es el equivalente de Windows para cualquiera que tenga que lidiar con eso: FOR /F usebackq %t IN ( etiqueta git ) DO @git tag --delete %t


Para eliminar etiquetas remotas (antes de eliminar etiquetas locales) simplemente hazlo:

git tag -l | xargs -n 1 git push --delete origin

y luego borre las copias locales:

git tag | xargs git tag -d

Nota: Agregó esta respuesta para futuros googlers.


Para usuarios de Windows que usan PowerShell:

git tag | foreach-object -process { git tag -d $_ }

Esto elimina todas las etiquetas devueltas por la git tag git tag -d ejecutando la git tag -d para cada línea devuelta.



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 Windows, elimine todas las etiquetas remotas:

git tag | xargs -L 1 | xargs git push origin --delete

A continuación, elimine todas las etiquetas locales:

git tag | xargs -L 1 | xargs git tag --delete

Esto debería estar bien siempre y cuando no tenga un '' en sus nombres de etiqueta. Para eso, los siguientes comandos deberían estar bien.

git tag | xargs -I{} echo ''"{}"'' | tr //n //0 | xargs --null git push origin --delete git tag | xargs -I{} echo ''"{}"'' | tr //n //0 | xargs --null git tag --delete

Otras formas de tomar una lista de líneas, envolverlas entre comillas, hacerlas una sola línea y luego pasar esa línea a un comando probablemente existan. Teniendo en cuenta que este es el mejor entorno para desollar gatos y todo.


Si no tiene las etiquetas en su repositorio local, puede eliminar las etiquetas remotas sin tener que llevarlas a su repositorio local.

git ls-remote --tags --refs origin | cut -f2 | xargs git push origin --delete

No se olvide de reemplazar "origen" al nombre de su controlador remoto.


También puedes usar:

git tag -d $(git tag)


git tag | xargs git tag -d

Simplemente usa la filosofía de Linux en la que canalizas todo. En Windows usa git bash con el mismo comando.