Quero excluir todas as tags de um repositório Git. Como eu posso fazer isso?
Usando git tag -d tagname
excluir a tag tagname
localmente e git push --tags
atualizando as tags no provedor git.
Eu tentei:
git tag -d *
Mas vejo que isso *
significa os arquivos do diretório atual.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Considere que tenho muitas tags e quero excluí-las, todas.
git tag -l | xargs -n 1 git push --delete origin
excluí-los do controle remoto.Para excluir tags remotas (antes de excluir tags locais), basta:
e exclua as cópias locais:
fonte
Pode ser mais eficiente pressionar excluir todas as tags em um comando. Especialmente se você tiver várias centenas.
Em um shell não Windows adequado, exclua todas as tags remotas:
Em seguida, exclua todas as tags locais:
Isso deve ser bom, desde que você não tenha um nome
'
em sua tag. Para isso, os seguintes comandos devem estar OK.Provavelmente existem outras maneiras de obter uma lista de linhas, envolvendo-as entre aspas, tornando-as uma única linha e passando essa linha para um comando. Considerando que este é o melhor ambiente para a criação de gatos e tudo.
fonte
xargs -L 1
faz?git tag
retorna as tags, uma por linha, e asxargs -L 1
gera uma por linha, então, para que serve?Para usuários do Windows que usam o PowerShell:
Isso exclui todas as tags retornadas
git tag
executandogit tag -d
para cada linha retornada.fonte
Adicionando a resposta de Stefan que faltava como excluir tags do controle remoto. Para o Windows PowerShell, você pode executar isso para excluir as tags remotas primeiro, seguidas pelas tags locais.
fonte
Se você não tiver as tags no seu repositório local, poderá excluir as tags remotas sem precisar levá-las ao seu repositório local.
Não se esqueça de substituir "origem" pelo nome do seu manipulador remoto.
fonte
Para usuários do Windows:
Isso exclui todas as Tags Locais executando a tag git e alimentando essa lista para a tag git -d:
(Encontrado em: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
fonte
Você também pode usar:
fonte
Como todas essas opções funcionam apenas no linux, aqui está o equivalente para quem precisa lidar com isso:
fonte
Eu tenho que excluir as tags com prefixo
por exemplo, eu tenho que excluir as tags v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
Para listar todas as tags com prefixo
Para excluir as tags
É assim que a primeira declaração funciona
fonte
O Powershell v7 suporta foreach paralelo se você tiver muitas tags upstream (origem) que precisam ser excluídas:
fonte