Como remover todas as tags locais e de origem do git?

100

Como você remove uma tag git que já foi enviada? Exclua todas as tags remotas do git (origem) e exclua todas as tags locais do git.

Amir Hosseinzadeh
fonte

Respostas:

246

1. Exclua todas as tags locais. (Opcional Recomendado)

git tag -d $(git tag -l)

2. Obtenha todas as tags remotas. (Opcional Recomendado)

git fetch

3. Exclua todos os tags remotos.

git push origin --delete $(git tag -l) # Pushing once should be faster than multiple times

4. Exclua todas as tags locais.

git tag -d $(git tag -l)
Amir Hosseinzadeh
fonte
1
Se você recebeu a mensagem de erro "lista de argumentos muito longa", o que provavelmente aconteceria se estivesse tentando limpar as tags Usegit tag -d $(git tag -l | head 100)
rocketspacer
1
Qual é a diferença entre as opções 1 e 4? Eles são ambos git tag -d $(git tag -l).
Michael Ozeryansky
2
1) apaga todas as suas tags locais 2) recupera todas as tags remotas, dando a você uma lista completa de tags remotas localmente 3) exclui as tags remotas com referência à lista local 4) exclui as tags locais da etapa 2
sentece
1
Acho que em 3. deveria sergit push --delete origin $(git tag -l)
npocmaka
3
git tag -d $(git tag -l)falha no git 2.23 comerror: switch `l' is incompatible with --delete
turbanoff
6

Para janelas usando prompt de comando:

Excluindo tags locais:

for /f "tokens=* delims=" %a in ('git tag -l') do git tag -d %a

Excluindo tags remotas:

for /f "tokens=* delims=" %a in ('git tag -l') do git push --delete origin %a
npocmaka
fonte
2
Ao usar o PS:git tag -l | %{git tag -d $_}
Pent Ploompuu
1
Para tags locais: git tag -l | xargs git tag -d
LongTP5
1
@ LongTP5 - xargsnão é um comando nativo do Windows e deve ser instalado adicionalmente.
npocmaka